标签:
在oracle中有一个很好的函数进行四舍五入,round(),
select round(111112.23248987,6) from dual;
但是java的Number本身不提供四舍五入的方法,在oracle.jbo.domain.Number中提供了round()方法,也可以使用。
在java中可以使用java.math.BigDecimal来进行四舍五入,或者直接使用DecimalFormat来控制小数位数的精度来进行四舍五入。
//使用DecimalFormat直接就可以控制小数的位数了 double resultVar = 1231231.1123682321; DecimalFormat dfc = new DecimalFormat("#.######"); String cellContent = dfc.format(resultVar); System.out.println(" cellContent "+cellContent);
在使用中,有时候会动态保留小数的位数,甚至银行家算法中四舍五入并不完全是5入,在某些情况下需要将3.155退位成3.15.
此时可以使用
double d = value; BigDecimal a = new BigDecimal(d); // BigDecimal a = new BigDecimal(String.valueOf(d)); System.out.println("a.setScale(2,2)=" + a.setScale(6,BigDecimal.ROUND_HALF_DOWN));
参考文章:
java BigDecimal的使用和四舍五入及格式规范(精准数据)
java BigDecimal.ROUND_UP和BigDecimal.ROUND_DOWN的用处
标签:
原文地址:http://www.cnblogs.com/huanghongbo/p/5032959.html