- - PR -
BigDecimalを使った割り算について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-04-27 18:12
お世話になります。
とても、初歩的な質問で申し訳ないのですが、 BigDecimalを使った割り算について教えてください。 環境:jdk1.5.0_03 "6148/3145728"を求めたく、以下のようにコード してみたのですが、例外が発生してしまい、 うまく計算できずにいます。 BigDecimal arg1 = new BigDecimal(6148); BigDecimal arg2 = new BigDecimal(3145728); BigDecimal result = arg1.divide(arg2); java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result. BigDecimalは全然不慣れなのですが、記述に問題などありましたら 教えていただけないでしょうか? | ||||
|
投稿日時: 2006-04-27 18:31
手元にjdk1.5.0がないので1.4.2のJavaDocみながらですが 「丸めモード」はどうなってます? 指定しない場合ROUND_UNNECESSARY辺りになってませんか? | ||||
|
投稿日時: 2006-04-27 19:06
kumaさん、早速のお返事ありがとうございます。
jdk1.5のjavadocにはdivide(BigDecimal divisor)の 丸めモードの記述は見つけられなかったのですが、 改めて丸めモードを明示して指定してみたところ、 欲しかった値を得ることができました。 BigDecimal result =arg1.divide(arg2,5,BigDecimal.ROUND_HALF_DOWN); とても初歩的な質問にも関わらず、親切なアドバイス 本当に感謝しております。 有難うございます。 |
1