BigDecimal の 2 つの値が等しいかどうかを Java で判断する方法
JavaではcompareTo()メソッドを使ってBigDecimalオブジェクトの大小比較ができます。compareTo()メソッドは、2つのBigDecimalオブジェクトの比較結果を整数値で返却します。
コードサンプル:
import java.math.BigDecimal;
public class CompareBigDecimal {
public static void main(String[] args) {
BigDecimal num1 = new BigDecimal("10.02");
BigDecimal num2 = new BigDecimal("10.02");
BigDecimal num3 = new BigDecimal("10.03");
// 使用compareTo()方法比较两个BigDecimal对象
int result1 = num1.compareTo(num2); // 返回0,表示相等
int result2 = num1.compareTo(num3); // 返回-1,表示num1小于num3
// 判断两个BigDecimal对象是否相等
boolean isEqual = result1 == 0;
System.out.println("num1是否等于num2: " + isEqual); // 输出true
isEqual = result2 == 0;
System.out.println("num1是否等于num3: " + isEqual); // 输出false
}
}
上記コードでは、compareTo()メソッドを使用してBigDecimalオブジェクトのnum1とnum2を比較し、その比較結果をresult1に格納します。次に、result1が 0 に等しいかどうかで、num1がnum2と等しいかどうかを判断します。
同様に、equals()メソッドを用いて、2つのBigDecimalオブジェクトの等価性を判定することもできます。equals()メソッドはcompareTo()メソッドを呼び出して比較を実行し、戻り値が0であれば、2つのオブジェクトは等価であることを示します。
コードサンプル:
public class CompareBigDecimal {
public static void main(String[] args) {
BigDecimal num1 = new BigDecimal("10.02");
BigDecimal num2 = new BigDecimal("10.02");
BigDecimal num3 = new BigDecimal("10.03");
// 使用equals()方法比较两个BigDecimal对象
boolean isEqual = num1.equals(num2); // 返回true,表示相等
System.out.println("num1是否等于num2: " + isEqual); // 输出true
isEqual = num1.equals(num3); // 返回false,表示不相等
System.out.println("num1是否等于num3: " + isEqual); // 输出false
}
}
上記のコードでは、equals()メソッドを用いて、2つの BigDecimal オブジェクト num1 と num2 とを比較し、その比較結果をisEqual変数に格納しています。その後、isEqual変数で、num1がnum2と等しいかどうかを直接判定できます。