[解決済み] BigDecimal の equals() と compareTo() の比較
2022-04-21 21:47:56
質問
簡単なテストクラスを考えてみましょう。
import java.math.BigDecimal;
/**
* @author The Elite Gentleman
*
*/
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BigDecimal x = new BigDecimal("1");
BigDecimal y = new BigDecimal("1.00");
System.out.println(x.equals(y));
System.out.println(x.compareTo(y) == 0 ? "true": "false");
}
}
と(意識的に)言うことができる。
x
と同じです。
y
(オブジェクト参照ではない) が、プログラムを実行すると、以下のような結果が表示されます。
false
true
質問です。との違いは何ですか?
compareTo()
と
equals()
で
BigDecimal
その
compareTo
と判断できる。
x
と同じです。
y
?
追記:BigDecimalには
inflate()
メソッドで
equals()
メソッドを使用します。は何をするのでしょうか?
inflate()
を実際に行ってみてください。
どのように解決するのですか?
答えは
のJavaDocを参照してください。
equals()
メソッド
:
とは異なり
compareTo
このメソッドでは、2つのBigDecimal
オブジェクトは、値とスケールが等しい場合にのみ等しくなります(したがって、この方法で比較した場合、2.0は2.00と等しくはなりません)。
言い換えれば
equals()
は
BigDecimal
オブジェクトは
まさに
で同じです。
各
の側面があります。
compareTo()
数値の比較のみ。
については
なぜ
equals()
がこのような挙動を示すことについては、既に回答がなされています。
このSOの質問で
.
関連
-
スレッド "main "での例外をEclipseで解決 java.lang.Error: 未解決のコンパイル問題、コンパイラとパッケージの不整合
-
[解決済み] Double vs. BigDecimal?
-
[解決済み] Java enumのメンバーを比較する:==またはequals()?
-
Enumとの組み合わせでswitchの使い方を一度覚えるために必要な定数式
-
java Mail send email smtp is not authenticated by TLS encryption solution.
-
eclipse の実行時に java 仮想マシンが見つからなかった
-
このラインで複数のマーカーを解決する方法
-
[解決済み] C#の==とEquals()の違いについて
-
[解決済み] JavaでequalsとhashCodeをオーバーライドする際に考慮すべき事項は?
-
[解決済み] JavaでequalsとhashCodeのメソッドをオーバーライドする必要があるのはなぜですか?
最新
-
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 エラー報告 スレッド "main" での例外 java.util.NoSuchElementException
-
スタイルが読み込まれず、ブラウザコンソールでエラーが報告される。リソースはスタイルシートとして解釈されますが、MIMEタイプtext/htmlで転送されます。
-
エラーが報告されました。リソースの読み込みに失敗しました:サーバーは500(内部サーバーエラー)のステータスで応答しました。
-
eclipse アクセス制限です。タイプ 'xxx' は API ではありません(必須ライブラリ '' の制限)。
-
xxx:jarのアーティファクトディスクリプタの読み込みに失敗した問題は解決しました。
-
node js npm gruntインストール、elasticsearch-head 5.Xインストール
-
が 'X-Frame-Options' を 'deny' に設定しているため、フレーム内にある。
-
あるコードに出会いましたが、何に使うのか理解できません。 List<String> list = new ArrayList<String>() { { a
-
ローカルリソースのロードが許可されていない場合の解決策
-
[解決済み] BigDecimal で比較演算子 >, =, < を使用するには?