【Java】BigDecimalで小数点以下の値を取得する方法
この記事ではJavaのinBigDecimalで小数点以下の値を取得する方法について解説します。
JavaのBigDecimalクラスで小数点以下の値を取得するにはremainderメソッドを使用すれば取得することができます。
remainder | 値1.remainder(値2):値1を値2で割った余りを取得します ⇒値2の値を1とすることで値1の値の小数点以下の値のみ残るため小数点以下の値を取得することができます。 |
正の数のパターン
BigDecimal bd = BigDecimal.valueOf(123.456789);
// 123.456789 % 1 の計算結果を取得する
//
BigDecimal 小数点以下の値 = bd.remainder(BigDecimal.ONE);
System.out.println(小数点以下の値);
// 実行結果
0.456789
負の数のパターン
マイナスの値の際は負の値となりますので小数点以下の部分を正の数として取り扱いたい場合は注意が必要です。
BigDecimal bd = BigDecimal.valueOf(-123.456); // -123.456 % 1 の計算結果を取得する BigDecimal 小数点以下の値 = bd.remainder(BigDecimal.ONE); System.out.println(小数点以下の値); // 実行結果 -0.456
マイナスの値をつけたくない場合は、BigDecimal.abs()にて絶対値取得してあげればよいです。
BigDecimal bd = BigDecimal.valueOf(-123.456); // -123.456 % 1 の計算結果を取得する BigDecimal 小数点以下の値 = bd.remainder(BigDecimal.ONE); // BigDecimal.abs()にて絶対値を取得 System.out.println(小数点以下の値.abs()); // 実行結果 -0.456
小数点以下が存在しない場合
余りが存在しないため小数点以下が存在しない場合は0となります。
BigDecimal bd = BigDecimal.valueOf(123456789); // 123456789 % 1 の計算結果を取得する BigDecimal 小数点以下の値 = bd.remainder(BigDecimal.ONE); System.out.println(小数点以下の値); // 実行結果 0
Javaの記事の一覧はJava にまとめてあります