2014-10-11 52 views
0

我需要歸檔這樣的:(基本上NUM1 * NUM2 = NUM​​3NUM1NUM2給出)的Java的DecimalFormat的RoundingMode

1) 10.62 * 4.0 = 42.48 
2) 14.89 * 8.5 = 126.56 
3) 13.21 * 6.0 = 79.26 
4) 16.55 * 7.35 = 121.64 
5) 18.62 * 9.0 = 167.58 
6) 9.47 * 15.3 = 144.89 
7) 6.58 * 3.0 = 19.74 
8) 18.32 * 5.4 = 98.93 
9) 12.15 * 2.9 = 35.24 
10) 3.98 * 4.8 = 19.10 

這個練習是練習格式化/舍入串/數。

所以我用:

DecimalFormat decimalFormat = new DecimalFormat(".00"); 
System.out.println(decimalFormat.format(num3)); 

,並得到了一切正確的,但在9) 12.15 * 2.9 = 35.24,我得到了35.23而不是35.24 默認的DecimalFormat的是的RoundingMode HALF_EVEN,如果我用RoundingMode.UP我會得到這個權利35.24但其他結果會被搞砸,所以我卡住了...

我應該使用什麼來獲得預期的結果?

+0

您是否試過'RoundingMode.CEILING'或'RoundingMode.HALF_UP'? (http://docs.oracle.com/javase/7/docs/api/java/math/RoundingMode.html) – Tom 2014-10-11 09:43:44

+0

HALF_UP無效,CEILING會搞亂其他結果。 – 2014-10-12 04:06:09

回答

0

使用RoundingMode UNNECESSARY,將解決您的問題。此外,如果需要,您可以捕獲異常並手動指定輸出。