本サイトはプロモーション(広告)が含まれています。

【Java】BigDecimalクラスで小数点以下の値が存在するか判定する方法

【Java】BigDecimalクラスで小数点以下の値が存在するか判定する方法

 JavaのBigDecimalクラスで小数点以下の値が存在するか判定するには以下のようにremainderメソッドとcompareToメソッドを使用することで判定することができます。

// remainderメソッド
値.remainder(BigDecimal.ONE);
※値を1で割った余りを取得します⇒3.14.remainder(BigDecimal.ONE); // 0.14

// compareToメソッド
値.compareTo(BigDecimal.ZERO) != 0
※ remainderメソッドで取得した値が0でない場合、小数点以下が存在すると判定できます

 上記のメソッドを使用することで以下のとおり小数点以下の値が存在するか判定することができています

BigDecimal 正の数少数点以下あり = BigDecimal.valueOf(3.14);
BigDecimal 正の数少数点以下なし = BigDecimal.valueOf(3);
BigDecimal 負の数少数点以下あり = BigDecimal.valueOf(-3.14);
BigDecimal 負の数少数点以下なし = BigDecimal.valueOf(-3);

// 3.14を1で割った余りの0.14を取得する
BigDecimal bd1 =正の数少数点以下あり.remainder(BigDecimal.ONE);
// 3を1で割った余りの0を取得する
BigDecimal bd2 =正の数少数点以下なし.remainder(BigDecimal.ONE);
// -3.14を1で割った余りの-0.14を取得する
BigDecimal bd3 =負の数少数点以下あり.remainder(BigDecimal.ONE);
// -3を1で割った余りの0を取得する
BigDecimal bd4 =負の数少数点以下なし.remainder(BigDecimal.ONE);
//0.14と0を比較した結果の戻り値が0でないためtrueを返却
System.out.println(bd1.compareTo(BigDecimal.ZERO) != 0);
//0と0を比較した結果の戻り値が0のためfalseを返却
System.out.println(bd2.compareTo(BigDecimal.ZERO) != 0);
//-0.14と0を比較した結果の戻り値が0でないためtrueを返却
System.out.println(bd3.compareTo(BigDecimal.ZERO) != 0);
//0と0を比較した結果の戻り値が0のためfalseを返却
System.out.println(bd4.compareTo(BigDecimal.ZERO) != 0);

//実効結果
true
false
true
false

Javaの記事一覧へ

PAGE TOP