2016-01-18 3 views
1

Я в основном пытаюсь использовать DecimalFormat, чтобы добраться до двух знаков после запятой. Я беру два целочисленных значения, а затем деля их и кастинг на двойной, который я поставил в значениях образца ниже. Когда я делаю, как показано ниже, я получаю значение, которое больше не равно двум десятичным знакам. Кажется, что при умножении на 3 он теряет округление.multipaling DecimalFormat number (no longer rounded должным образом)

DecimalFormat df = new DecimalFormat("#.00"); 
double d = Double.parseDouble(df.format((double)5/6))*3; 
System.out.println(d); 

Не могли бы вы сообщить мне, почему это происходит и как это исправить?

ответ

1

В statemet:

double d = Double.parseDouble(df.format((double)5/6))*3; 

форматирование не сохраняется (Double возвращает двойной).

Вы могли бы сделать, например .:

System.out.println(df.format(d)); 
+0

Благодаря мельница Svea - да вызова метода формата из внутри Println работ. – user3111329

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