JavaでBigDecimalの比較をする際は注意(compareToとequals)

2021年6月25日

BigDecimalの比較をする際、文字列の比較と同じようにはできないので注意が必要です。

Stringの場合

String a = "aaa";
String b = "aaa";
if (a.equals(b))

これはtrueになります。

BigDecimalの場合

BigDecimal a = new BigDecimal(0);
BigDecimal b = new BigDecimal(0);
if (a.equals(b))

これはtrueになります。

BigDecimal a = new BigDecimal(0);
BigDecimal b = new BigDecimal(0.0);
if (a.equals(b))

これはfalseになります。

equalsを使用すると小数点までは見ないので、BigDecimalの場合は小数点までを考慮してcompareToを使用する必要があります。

BigDecimal a = new BigDecimal(0);
BigDecimal b = new BigDecimal(0.0);
if (a.compareTo(b) == 0)

これはtrueになります。

▼僕はプログラミングを覚えるには、Javaを勉強するのが良いと思っています。
詳しくは以下にまとめたので、ぜひご覧ください。

プログラミングの基礎を学ぶにはJavaは、うってつけだと思います。
以下のスクールとかで学べるので、ぜひJavaを学習してみてください。

ウズウズカレッジ Javaプログラミングコース