【Java】BigDecimalのaddで加算されない場合は値を受け取っているか確認する

【Java】BigDecimalのaddで加算されない場合は値を受け取っているか確認する

管理人
この記事ではJavaのBigDecimalで数値の加算(計算)されない場合について解説します。

 JavaのBigDecimalクラスで数値の加算されない場合は値を受け取っているか確認する。

⇒BigDecimalクラスはString型などと同様に不変のオブジェクトであるため、値を代入してあげなければ、数値に変更されません

  • 変数1.add(変数2);⇒値を受け取っていないためNG
  • 変数1 = 変数1.add(変数2);⇒変数1に変数2を加算した値を変数1に受け取っているためOK
// 値を受け取っていないためNGの例
BigDecimal b1 = new BigDecimal("5");
BigDecimal b2 = new BigDecimal("3");
// 加算処理を実施するが値を受け取っていないため反映されない
b1.add(b2);
System.out.println(b1);

// 実行結果
5

 値を受け取っていないため3+2=5とならず、変数b1の3のままです。

// 値を受けとり正常に加算される例
BigDecimal b1 = new BigDecimal("5");
BigDecimal b2 = new BigDecimal("3");
// 加算処理を実施するが値を受け取っていないため反映されない
b1 = b1.add(b2);
System.out.println(b1);

// 実行結果
8

 値を受け取ることで加算処理が正常にされていることを確認できます。

減算・乗算・除算も同様に値を受け取る必要があります。

 減算・乗算・除算も同様に値を受け取ることで計算結果が反映されます。

BigDecimal b1 = new BigDecimal("8");
BigDecimal b2 = new BigDecimal("2");
// 減算
b1.subtract(b2);
// 値を受け取ってないため8
System.out.println(b1);
b1 = b1.subtract(b2);
// 値を受け取るため6
System.out.println(b1);
// 乗算
b1.multiply(b2);
// 値を受け取ってないため6
System.out.println(b1);
b1 = b1.multiply(b2);
// 値を受け取るため12
System.out.println(b1);
// 除算
b1.divide(b2);
// 値を受け取ってないため12
System.out.println(b1);
b1 = b1.divide(b2);
// 値を受け取るため6
System.out.println(b1);

// 実行結果
8
6
6
12
12
6
管理人
Javaの記事の一覧はJava にまとめてあります

コメントを残す

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

PAGE TOP