1.Десятичная точность вопроса | Большой Десятичный
BigDecimal ap = new BigDecimal(170.8999999999998, MathContext.DECIMAL64).setScale(2, BigDecimal.ROUND_FLOOR);
Результат: 170,89 (Требуется: 170,89)
2.
BigDecimal ap = new BigDecimal(170.89999999999998, MathContext.DECIMAL64).setScale(2, BigDecimal.ROUND_FLOOR); (1 Extra 9 in value)
Результат: 170,90 (Требуется: 170,89)
3.
BigDecimal ap = new BigDecimal(2401.99).setScale(2, BigDecimal.ROUND_FLOOR);
результат: 2401.98 (обязательно: 2401.99)
Как получить только 2 цифры после десятичной дробной величины без округления.
P.S: Я не хочу преобразовывать значение в String.
Поместите это число в кавычки, чтобы передать его строковое представление в BigDecimal. В настоящее время вы используете двойной литерал с ошибкой округления во время компиляции. –