面对Java中的问题

时间:2011-05-17 04:41:16

标签: java

我必须在我的一个应用程序中显示未来30年客户的基金价值,但问题是存在一些小数值,所以我们必须对这些值进行舍入,以便我们计算正确.eg我们有值,如414.598940334717,它应该四舍五入到414.60但是根据电子表格,这个函数直到414.61才能完成。 我写过这个方法

BigDecimal bd = new BigDecimal(Double.toString(414.598940334717));

bd = bd.setScale(2,BigDecimal.ROUND_HALF_UP );

2 个答案:

答案 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

相关问题