【Java】BigDecimalで小数点以下の値を取得する方法

【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 にまとめてあります

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

PAGE TOP