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

【Java】BigDecimalの使い方について(add,subtract,multiply,divide)

【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

Javaの記事一覧へ

PAGE TOP