Так что BigDecimal не может хранить числа, которые продолжаются бесконечно, как ответ на 1/3. Когда я попробовал это, я получаю следующее:BigDecimal Rounding
Exception in thread "main" java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
Так что я решил использовать RoundingMode
. Когда я делаю (1/3)*3
, я хочу, чтобы он возвращался как 1, а не 0,9 или 0,99 или 0,999 или в любую форму. Однако, если бы я должен был сделать (1/3) * 2, я не хочу, чтобы округлить до 1.
Это то, что я сделал. Я пытаюсь выяснить, как вернуть его к одному, если бы я умножал результаты на 3. – dalawh
невозможно. когда вы делаете математику, вам нужно решить, нужен ли вам точный результат (без округления) или округленные результаты (и вы теряете точность). – 1ac0