[解決済み】JavaでBigDecimal変数==0かどうかを確認する方法は?
2022-04-05 05:51:24
質問
Javaで以下のようなコードを書いています。
BigDecimal price; // assigned elsewhere
if (price.compareTo(new BigDecimal("0.00")) == 0) {
return true;
}
if条件はどのように書けばよいのでしょうか?
どのように解決するのですか?
使用方法
compareTo(BigDecimal.ZERO)
の代わりに
equals()
:
if (price.compareTo(BigDecimal.ZERO) == 0) // see below
と比較すると
BigDecimal
定数
BigDecimal.ZERO
を作成する必要がなくなります。
new BigDecimal(0)
を実行するたびに
ご参考までに。
BigDecimal
も定数を持ちます。
BigDecimal.ONE
と
BigDecimal.TEN
をご利用ください。
注意!
を使用できない理由は
BigDecimal#equals()
というのは
規模
を考慮した。
new BigDecimal("0").equals(BigDecimal.ZERO) // true
new BigDecimal("0.00").equals(BigDecimal.ZERO) // false!
ということで、純粋な数値比較には不向きです。しかし
BigDecimal.compareTo()
は、比較する際にスケールを考慮しません。
new BigDecimal("0").compareTo(BigDecimal.ZERO) == 0 // true
new BigDecimal("0.00").compareTo(BigDecimal.ZERO) == 0 // true
関連
-
[解決済み] ボタンでTextFieldをクリアする(Java)
-
[解決済み] ヘッドリカーシオンとテールリカーシオンの違い [重複]について
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] 特定のUnicode文字を含むコメントでのJavaコードの実行が許可されているのはなぜですか?
-
[解決済み】JSP 2を使用して、JSPファイル内のJavaコードを回避するにはどうすればよいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Eclipse デフォルトのフォント名
-
[解決済み] enumのordinalを使用するのは良い習慣ですか?
-
[解決済み] XX:MaxDirectMemorySizeの既定値
-
[解決済み] 一部の入力ファイルが非推奨のAPIを使用またはオーバーライドしている
-
[解決済み] JOGLまたはLWJGLの既成のプロジェクト
-
[解決済み] raw 型のメンバへのアンチェックの呼び出し
-
[解決済み] どのように配列の10未満の値(x * 2)を倍増するコードを取得するには?(Java)
-
[解決済み] java.sql.SQLRecoverableException: IO エラーです。NL Exceptionが発生しました
-
[解決済み] Spring ApplicationContext - リソースリーク: 'context' が閉じられない
-
[解決済み] java.io.IOException。DER長の短い読み取り