BigDecimal 的 ROUND_HALF_UP和ROUND_HALF_DOWN

转载 2011年01月10日 17:18:00

http://esffor.javaeye.com/blog/96157

 

ROUND_HALF_UP: 遇到.5的情况时往上近似,例: 1.5 ->;2
ROUND_HALF_DOWN : 遇到.5的情况时往下近似,例: 1.5 ->;1

BigDecimal a = new BigDecimal(1.5);
                System.out.println("down="+a.setScale(0,BigDecimal.ROUND_HALF_DOWN)+"/tup="+a.setScale(0,BigDecimal.ROUND_HALF_UP));
结果:down=1  up=2
看这个例子就明白了!

其他参数说明

 

ROUND_CEILING    
  如果   BigDecimal   是正的,则做   ROUND_UP   操作;如果为负,则做   ROUND_DOWN   操作。    
  ROUND_DOWN    
  从不在舍弃(即截断)的小数之前增加数字。    
  ROUND_FLOOR    
  如果   BigDecimal   为正,则作   ROUND_UP   ;如果为负,则作   ROUND_DOWN   。    
  ROUND_HALF_DOWN    
  若舍弃部分>   .5,则作   ROUND_UP;否则,作   ROUND_DOWN   。    
  ROUND_HALF_EVEN    
  如果舍弃部分左边的数字为奇数,则作   ROUND_HALF_UP   ;如果它为偶数,则作   ROUND_HALF_DOWN   。     
  ROUND_HALF_UP     
  若舍弃部分>=.5,则作   ROUND_UP   ;否则,作   ROUND_DOWN   。    
  ROUND_UNNECESSARY    
  该“伪舍入模式”实际是指明所要求的操作必须是精确的,,因此不需要舍入操作。    
  ROUND_UP    
  总是在非   0   舍弃小数(即截断)之前增加数字。     

关于BigDecimal.ROUND_HALF_UP与ROUND_HALF_DOWN

ROUND_HALF_UP: 遇到.5的情况时往上近似,例: 1.5 ->;2ROUND_HALF_DOWN : 遇到.5的情况时往下近似,例: 1.5 ->;1BigDecimal a = new ...
  • daryl715
  • daryl715
  • 2007年05月11日 10:49
  • 61773

java BigDecimal.ROUND_UP和BigDecimal.ROUND_DOWN的用处

今天在工作中遇到了这样的一个需求, 一个小数,例如1.7777777,或者1.3333333,不管后面的位数是多少,只保留到小数点后第二位,但是不是四舍五入,1.7777777处理后就是1.77,1...
  • lijinhua7602
  • lijinhua7602
  • 2015年09月15日 10:13
  • 7674

BigDecimal.ROUND_HALF_UP和BigDecimal.ROUND_HALF_DOWN的区别

BigDecimal.ROUND_HALF_UP 在java jdk的解释为:向“ 最接近的”数字舍入,如果与两个相邻数字的距离相等,则为向上舍入的舍入模式。如果舍弃部分 >= 0.5,则舍入行为与...
  • lijunlinlijunlin
  • lijunlinlijunlin
  • 2013年10月01日 12:08
  • 4181

BigDecimal ROUND_HALF_DOWN与ROUND_HALF_UP的区别

BigDecimal ROUND_HALF_DOWN与ROUND_HALF_UP 踩坑
  • xuexixuexiaae
  • xuexixuexiaae
  • 2017年12月12日 15:18
  • 29

BigDecimal(num).setScale ROUND_HALF_UP四舍五入的问题

double num = 176.5555;     double  b = new BigDecimal(num).setScale(3,BigDecimal.ROUND_HALF_UP).doub...
  • kunga0814
  • kunga0814
  • 2010年10月13日 11:22
  • 5053

BigDecimal.setScale 处理java小数点和四舍五入的算法

BigDecimal.setScale()方法用于格式化小数点 setScale(1)表示保留一位小数,默认用四舍五入方式  setScale(1,BigDecimal.ROUND_DOWN)直接...
  • lijie815917
  • lijie815917
  • 2015年07月21日 10:12
  • 3735

java取整和java四舍五入方法 BigDecimal.setScale()方法详解.

内容: import java.math.BigDecimal;  import java.text.DecimalFormat; public class TestGetInt{    ...
  • psiitoy
  • psiitoy
  • 2014年05月08日 14:55
  • 1999

BigDecimal的定义和比较

BigDecimal 定义: BigDecimal num= new BigDecimal("100");  BigDecimal 和零比较大小: int i=num.compareTo(Big...
  • qq_32405433
  • qq_32405433
  • 2017年11月27日 14:37
  • 284

DecimalFormat和BigDecimal对格式化的性能对比

public static void main(String[] args) { long start = System.currentTimeMillis(); for (int i =...
  • arkblue
  • arkblue
  • 2011年11月01日 16:31
  • 4137

BigDecimal,int 的操作

1、 int 或其他number类型 转化成 BigDecimal BigDecimal b = new BigDecimal(10000);  BigDecimal c = BigDecimal.v...
  • wcx11
  • wcx11
  • 2009年06月03日 15:44
  • 5476
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:BigDecimal 的 ROUND_HALF_UP和ROUND_HALF_DOWN
举报原因:
原因补充:

(最多只允许输入30个字)