Округление с помощью DecimalFormat в Java

Давайте посмотрим на следующие операторы в Java.

System.out.println(new DecimalFormat("0").format(2.4)); //returns 2

System.out.println(new DecimalFormat("0").format(2.5)); //returns 2  <---Concentrate here
System.out.println(Math.round(2.5));                    //returns 3

System.out.println(new DecimalFormat("0").format(2.6)); //returns 3
System.out.println(new DecimalFormat("0").format(3.5)); //returns 4

В приведенных утверждениях все остальные случаи очевидны, кроме следующего.

System.out.println(new DecimalFormat("0").format(2.5));

Он должен вернуть 3, но возвращает 2. Как?

11
задан donfuxx 10 March 2014 в 19:28
поделиться