【Java】BigDecimalの使い方について
小数点以下の数値を扱う際に丸め処理が行われる場合があります。丸め処理されずに計算処理を行うためのクラスとしてBigDecimalクラスが用意されています。
BigDecimalの使い方については以下のとおりです。
インポート文
// BigDecimalクラスのインポート文 import java.math.BigDecimal;
BigDecimalクラスを利用するためには上記をインポートする必要があります。
初期化処理
// BigDecimalクラスの初期化処理
BigDecimal 変数名 = new BigDecimal("3.14");
初期化処理を実施する際は数値を入れておく必要があります。例えば、値を設定しない場合エラーとなります。
// 初期値にカラ設定はできないためエラー
BigDecimal b = new BigDecimal("");
System.out.println(b);
// 実行結果
Exception in thread "main" java.lang.NumberFormatException
// 数値であれば問題なく初期化可能
BigDecimal b = new BigDecimal("0.00");
System.out.println(b);
// 実行結果
0.00
加算処理(add)
BigDecimalで数値を加算するためにはaddメソッドを使用します。
// BigDecimalクラスの加算処理 BigDecimal型変数1.add(BigDecimal型変数2);
addメソッドで加算する値はBigDecimal型である必要があります。
BigDecimal b1 = new BigDecimal("3.14");
BigDecimal b2 = new BigDecimal("2.34");
// BigDecimal型の変数b1とb2を加算
System.out.println(b1.add(b2));
// 実行結果
5.48
型が違う場合、使用できません。
// int型などの値を加算することはできない
BigDecimal b1 = new BigDecimal("3.14");
System.out.println(b1.add(10));
型 BigDecimal のメソッド add(BigDecimal) は引数 (int) に適用できません。
// 数値を入れたい場合はBigDecimal型に変換してやればよい
BigDecimal b1 = new BigDecimal("3.14");
System.out.println(b1.add(new BigDecimal("10")));
// 実行結果
13.14
【Java】BigDecimalのaddで加算されない場合確認する点
【Java】BigDecimalクラスで足し算をループで実装する方法
減算処理(subtract)
BigDecimalで数値を減算するためにはsubtractメソッドを使用します。
// BigDecimalクラスの減算処理
BigDecimal型変数1.subtract(BigDecimal型変数2);
subtractメソッドで減算する値はBigDecimal型である必要があります。
型が違う場合はaddメソッドと同様にエラーとなります。
BigDecimal b1 = new BigDecimal("3.14");
BigDecimal b2 = new BigDecimal("2.34");
// BigDecimal型の変数b1とb2を減算
System.out.println(b1.subtract(b2));
// 実行結果
0.80
乗算処理(multiply)
BigDecimalで数値を乗算するためにはmultiplyメソッドを使用します。
// BigDecimalクラスの乗算処理 BigDecimal型変数1.multiply(BigDecimal型変数2);
multiplyメソッドで乗算する値はBigDecimal型である必要があります。
型が違う場合はaddメソッドと同様にエラーとなります。
BigDecimal b1 = new BigDecimal("3.14");
BigDecimal b2 = new BigDecimal("2.34");
// BigDecimal型の変数b1とb2を乗算
System.out.println(b1.multiply(b2));
// 実行結果
7.3476
除算処理(divide)
BigDecimalで数値を除算するためにはdivideメソッドを使用します。
// BigDecimalクラスの除算処理 BigDecimal型変数1.divide(BigDecimal型変数2);
divideメソッドで除算する値はBigDecimal型である必要があります。
型が違う場合はaddメソッドと同様にエラーとなります。
BigDecimal b1 = new BigDecimal("3.14");
BigDecimal b2 = new BigDecimal("2");
// BigDecimal型の変数b1とb2を除算
System.out.println(b1.divide(b2));
// 実行結果
1.57
【Java】BigDecimalクラスで計算を複数実施する方法
BigDecimal型からint型への型変換
BigDecimal型からint型への型変換するためには、intValueメソッドを使用することで変換できます。
BigDecimalに少数を含む場合は小数点以下が切り捨てられます。
BigDecimal b1 = new BigDecimal("3.99");
int i = b1.intValue();
System.out.println(i);
// 実行結果
3
BigDecimal型からdouble型への型変換
BigDecimal型からdouble型への型変換するためには、doubleValueメソッドを使用することで変換できます。
BigDecimal b1 = new BigDecimal("3.99");
double d = b1.doubleValue();
System.out.println(d);
// 実行結果
3.99







コメントを残す