【Java】BigDecimalのaddで加算されない場合確認する点
JavaのBigDecimalクラスで数値の加算されない場合は以下の点を確認すれば解消できます
- 加算後の値を受け取っているかどうか確認する。
BigDecimalクラスはString型などと同様に不変のオブジェクトです。
そのため値を代入してあげなければ、数値に変更されません
- 変数1.add(変数2);⇒値を受け取っていないためNG
- 変数1 = 変数1.add(変数2);⇒変数1に変数2を加算した値を変数1に受け取っているためOK
// 値を受け取っていないためNGの例 BigDecimal b1 = new BigDecimal("3"); BigDecimal b2 = new BigDecimal("2"); // 加算処理を実施するが値を受け取っていないため反映されない b1.add(b2); System.out.println(b1); // 実行結果 3
値を受け取っていないため3+2=5とならず、変数b1の3のままです。
// 値を受けとり正常に加算される例 BigDecimal b1 = new BigDecimal("3"); BigDecimal b2 = new BigDecimal("2"); // 加算処理を実施するが値を受け取っていないため反映されない b1 = b1.add(b2); System.out.println(b1); // 実行結果 5
値を受け取ることで加算処理が正常にされていることを確認できます。
コメントを残す