[解決済み] BigDecimalの数値は四捨五入が必要
2022-03-01 12:38:54
質問
2つのBigDecimalの数値のスケールを設定したい
a
と
b
.この例のように :
BigDecimal a = new BigDecimal("2.6E-1095");
BigDecimal b = new BigDecimal("2.7E-1105");
int i = 112, j=1;
BigDecimal aa = a.setScale(i+j);
BigDecimal bb = b.setScale(i+j);
で、実行するとこのような例外が発生します。
java.lang.ArithmeticException: Rounding necessary
at java.math.BigDecimal.divideAndRound(BigDecimal.java:1439)
at java.math.BigDecimal.setScale(BigDecimal.java:2394)
at java.math.BigDecimal.setScale(BigDecimal.java:2437)
なぜ四捨五入が必要なのか、四捨五入したくない場合の解決策は?
ありがとうございます。
解決方法は?
2つのBigDecimalの数値があり、どちらも小数点以下が1000桁以上必要です。小数点以下113桁までしか表示できないように設定しようとすると、精度が落ちるので丸める必要があります。
RoundingModeを受け取るsetScaleメソッドを使用すると、例外を防ぐことはできますが、丸めはできません。
関連
-
[解決済み] Double vs. BigDecimal?
-
[解決済み] BigDecimal が 0 より大きいかどうかを比較します。
-
[解決済み] Java - JTextFieldが空かどうかを確認する
-
[解決済み] プロトコルハンドラの初期化に失敗しました。
-
[解決済み] 午前0時からの時間を秒単位で取得する方法
-
[解決済み] java.lang.ClassCastException: java.lang.Long を java.lang.Integer にキャストできない(java 1.6
-
[解決済み] IntegerからBigIntegerへの変換
-
[解決済み] Mavenを使用して、依存関係を持つ実行可能なJARを作成するにはどうすればよいですか?
-
[解決済み】JavaでBigDecimal変数==0かどうかを確認する方法は?
-
[解決済み】BigDecimalの小数点以下が常に2桁になるように丸める。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Javaで拡張子なしのファイル名を取得する方法は?
-
[解決済み] JavaでFileFilterを作るには?
-
[解決済み] java.util.concurrent.ExecutionException 例外をどのように処理しますか?
-
[解決済み] 要素 'beans' の宣言が見つかりません。
-
[解決済み] Java の条件付きコンパイル:コードチャンクをコンパイルしないようにするには?
-
[解決済み] ORA-01654: インデックスを拡張できません。
-
[解決済み] JDBC タイプの方言マッピングがありません。1111
-
[解決済み] publicId と systemId の間に空白が必要です。
-
[解決済み] タイプの安全性。アンチェック・キャスト
-
[解決済み] x--やx++はここで何をするのですか?