умножение числа DecimalFormat (больше не округляется должным образом)

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

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

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


person user3111329    schedule 18.01.2016    source источник


Ответы (1)


В заявлении:

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

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

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

System.out.println(df.format(d));
person Svea    schedule 18.01.2016
comment
Большое спасибо Svea - да, вызов метода формата из println работает. - person user3111329; 19.01.2016