BigDecimal 的roundMode 舍位模式

来源:互联网 发布:android smali java 编辑:程序博客网 时间:2024/05/21 18:32

 


roundMode是指舍位时候的模式,传参数的时候用BigDecimal.ROUND_XXXX_XXX,  
  有:  
    一下例子是setScale(0,BigDecimal.ROUND_XXXX_XXX));的情况。如果保留小数位数不是零,如

setScale(2,BigDecimal.ROUND_XXXX_XXX)); 是 2 ,则 此数字的小数位数要大于2位。第三位才是要取舍得位。
  ROUND_CEILING:   舍位时往正无穷方向移动   1.1->2   1.5->2   1.8->2   -1.1->-1   -1.5->-1   -1.8->-1  
  ROUND_DOWN:向0的方向移动1.1->1   1.5->1   1.8->1   -1.1->-1   -1.5->-1   -1.8>-1  
  ROUND_FLOOR:与CEILING相反,往负无穷   1.1->1   1.5->1   1.8->1   -1.1->-2   -1.5->-2   -1.8->-2  
  ROUND_HALF_DOWN:以5为分界线,或曰五舍六入1.5->1   1.6->1   -1.5->-1   -1.6->-2 1.15->1.1   1.16->1.2 1.55->1.6  1.56->1.6
  ROUND_HALF_EVEN:同样以5为分界线,如果是5,则前一位变偶数1.15->1.2   1.16->1.2   1.25->1.2   1.26->1.3  
  ROUND_HALF_UP:最常见的四舍五入  
  ROUND_UNNECESSARY:无需舍位  
  ROUND_UP:与ROUND_DOWN,远离0的方向1.1->2   1.5->2   1.8->2   -1.1->-2   -1.5->-2   -1.8->-2  
   
  具体精确到几位因该采用  
  商=被除数.devide(除数,保留小数位数,精确方法)

 

 

http://blog.sina.com.cn/s/blog_497f9dda0100078p.html