/**
* @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
改进例如以下:
<pre name="code" class="java"> /**
* @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类型的话。我们可以实现所有正常的四舍五入.
不知什么原因详细信息.
版权声明:本文博主原创文章。博客,未经同意不得转载。