я пытаюсь проценты формата с помощью следующего кода:Формат дробно процента в ява доходности очень странное поведение
NumberFormat fmt = NumberFormat.getPercentInstance();
fmt.setRoundingMode(RoundingMode.HALF_UP);
fmt.setMinimumFractionDigits(0);
fmt.setMaximumFractionDigits(0);
System.out.println(fmt.format(0.145));
Однако, я получаю очень странный результат:
14%
Изменение значения 0.145 на что-то другое, например 0.125 будет работать правильно, и результат будет таким, как ожидалось
13%
Может кто-то пролить свет на это? Заранее спасибо
Из любопытства, почему это не так для 0.125? – kosa
Поскольку значение 0.125 может быть точно представлено как дробное число в двоичном формате, так как оно равно '1/8'. –
Получил это. Имеют смысл. Благодаря! – kosa