В коде Java у меня есть 1 вход: 16275.874999999998
Я строю метод, который округляет его до: 16275,87
Но правильный ответ: 16275,88
Как это исправить в Java?
Мой текущий метод округления:
public static double round(final double value, final int places) {
if (places < 0) throw new IllegalArgumentException();
BigDecimal bd = BigDecimal.valueOf(value);
bd = bd.setScale(places, RoundingMode.HALF_UP);
return bd.doubleValue();
}
Редактировать: я думал, что «правильный ответ» имел .88, потому что 9-е округлились бы, но это не так с методом, который я использую, обязательно рассмотрим его переписку с учетом предыдущих десятичных точек.
Большое спасибо за ответы всем!