【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
コメントを残す