我必须在我的一个应用程序中显示未来30年客户的基金价值,但问题是存在一些小数值,所以我们必须对这些值进行舍入,以便我们计算正确.eg我们有值,如414.598940334717,它应该四舍五入到414.60但是根据电子表格,这个函数直到414.61才能完成。 我写过这个方法
BigDecimal bd = new BigDecimal(Double.toString(414.598940334717));
bd = bd.setScale(2,BigDecimal.ROUND_HALF_UP );
答案 0 :(得分:0)
试
DecimalFormat twoDForm = new DecimalFormat("#.##");
System.out.print(twoDForm.format(Double.valueOf("414.588940334717")));
答案 1 :(得分:0)
我没有看到你的问题...
BigDecimal bd = new BigDecimal(Double.toString(414.598940334717));
bd = bd.setScale(2,BigDecimal.ROUND_HALF_UP );
System.out.println("" + bd);
<强>输出强>
414.60
我这样做的常规技巧就是使用强制转换:
double d = 414.598940334717;
double rounded = (int)(d * 100 + 0.5) / 100.0;
System.out.println("" + rounded);
<强>输出强>
414.6