[解決済み] BigDecimalのsetScaleとround
2022-04-25 02:22:27
質問
この2つの呼び出しの違いは何ですか?(何かあるのでしょうか?)
// 1.
new BigDecimal("3.53456").round(new MathContext(4, RoundingMode.HALF_UP));
// 2.
new BigDecimal("3.53456").setScale(4, RoundingMode.HALF_UP);
解決方法は?
重要な点として、言及はされているものの、直接的には取り上げられていないのが、以下の違いです。 "precision"。 と "スケール" という2つの文の中でどのように使われているかを説明します。 "precision"。 は、数値の有効桁数の合計です。 "スケール" は小数点の右側の桁数です。
MathContext のコンストラクタは引数として precision と RoundingMode しか受け付けないため、最初のステートメントで scale が指定されることはない。
setScale()
は明らかにRoundingModeと同様にscaleを引数として受け取りますが、2番目のステートメントでは精度は決して指定されません。
小数点以下を1桁右にずらすと、その違いがはっきりします。
// 1.
new BigDecimal("35.3456").round(new MathContext(4, RoundingMode.HALF_UP));
//result = 35.35
// 2.
new BigDecimal("35.3456").setScale(4, RoundingMode.HALF_UP);
// result = 35.3456
関連
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み] Javaにおける "implements Runnable "と "extends Thread "の違いについて
-
[解決済み] JavaBeanとは何ですか?
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] StringBuilderとStringBufferの違いについて
-
[解決済み] java.lang.UnsupportedClassVersionError を修正する方法。サポートされていないメジャー.マイナーバージョン
-
[解決済み] Javaで数値を小数点以下n桁に丸める方法
-
[解決済み] wait()とsleep()の違いについて
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
-
[解決済み】HashMap、LinkedHashMap、TreeMapの違いについて
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
アクセス制限です。タイプ 'Application' は API ではありません。
-
Eclipseで "XXXX "の解決策を(型に)解決することができない
-
Javaクラスローダーにソースコードから潜り込む
-
プロジェクトの依存関係を解決できなかった 解決
-
Eclipseでプロジェクトエクスプローラービューとパッケージエクスプローラービューを使う
-
サーブレットクラスのインスタンス化エラーの解決法
-
Java コンパイルエラー - スレッド "main" で例外 java.lang.Error: 未解決のコンパイル問題です。
-
自動配線された依存性のインジェクションに失敗しました。
-
Google Chromeのエラー「Not allowed to load local resource」の解決策について
-
[解決済み】BigDecimalの小数点以下が常に2桁になるように丸める。