概述
/**
* @Description: 四舍五入留2位小数
* @param valueName
* @return
*/
public static Double formateDouble45(Double d){
if(d == null){
return 0d;
}
BigDecimal b = new BigDecimal(d);
double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
return f;
}
上面是以前我写的一个四舍五入保留2位小数的方法,最近发现是有问题的
例如:2.555 得到是2.55 而不是预想的2.56
改进如下:
/**
* @Description: 四舍五入留2位小数
* @param valueName
* @return
*/
public static Double formateDouble45(Object d){
if(d == null){
return 0d;
}
BigDecimal b = new BigDecimal(d.toString());
double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
return f;
}
通过测试发现如果构建BugDecimal的时候使用String类型的话,则可实现全部正常的四舍五入.
具体原因不详.
原文:http://blog.csdn.net/rnzuozuo/article/details/40453143
最后
以上就是妩媚鼠标为你收集整理的java bigdecimal 四舍五入_JAVA通过BigDecimal四舍五入解决方案和注意事项的全部内容,希望文章能够帮你解决java bigdecimal 四舍五入_JAVA通过BigDecimal四舍五入解决方案和注意事项所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复