Что вызывает исключение «Незаканчивающееся десятичное расширение» из BigDecimal.divide? [дубликат]

Этот вопрос уже ответ здесь:

Я использовал BigDecimals раньше, но не очень часто, и я работал над чем-то сегодня утром, и я продолжал получать следующее исключение:

Exception in thread "main" java.lang.ArithmeticException: Non-terminating decimal expansion;
no exact representable decimal result.
    at java.math.BigDecimal.divide(BigDecimal.java:1594)

Я пытался установить масштаб и используйте округление, чтобы устранить проблему следующим образом:

    BigDecimal bd1 = new BigDecimal(1131).setScale(2,BigDecimal.ROUND_HALF_UP);
    BigDecimal bd2 = new BigDecimal(365).setScale(2,BigDecimal.ROUND_HALF_UP);
    BigDecimal bd3 = bd1.divide(bd2).setScale(2,BigDecimal.ROUND_HALF_UP);
    System.out.println("result: " + bd3);

Однако я продолжаю получать одно и то же исключение. Кто-нибудь может показать мне, где я допустил ошибку?

24
задан ChadNC 15 May 2012 в 15:16
поделиться