2014-10-11 2 views
0

мне нужно архивировать это: (в основном num1 * num2 = num3 и num1 и num2 приведены)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 Значение по умолчанию RoundingMode из DecimalFormat является 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

+0

HALF_UP не работает, CEILING испортит другие результаты. –

ответ

0

Используя RoundingMode UNNECESSARY, вы решите вашу проблему. Кроме того, вы можете перехватывать исключения и указывать выходные данные вручную, если это необходимо.

Смежные вопросы