Java округление десятичного формата, дающее неожиданный вывод - PullRequest
1 голос
/ 12 марта 2020

В соответствии с документацией DecimalFormat режим округления по умолчанию - HALF_EVEN. Определение режима HALF_EVEN:

Режим округления для округления до «ближайшего соседа», если оба соседа не равноудалены, в этом случае округление до четного соседа.

https://docs.oracle.com/javase/7/docs/api/java/math/RoundingMode.html#HALF_EVEN

Однако приведенный ниже код дает вывод 0,01

private static final DecimalFormat decimalFormat = new DecimalFormat("#.##");
System.out.print(decimalFormat.format(0.015));

Для округления до точности 2 «соседи» здесь будут 1 и 2, оба равноудалены от 5, поэтому в идеале следует выбрать четное число и округлить до 0,02. Я что-то пропустил?

...