- BigDecimalを使うときは、NullPointerExceptionを避けるため、NULLの場合は0を返すようする方が無難である。Stringから変換するときは、以下のようなメソッドを用意しておくと良い!
public static BigDecimal toNumber(String str) {
if (str == null) {
return BigDecimal.ZERO;
} else {
return new BigDecimal(str.replaceAll(",", ""));
}
}
- BigDecimalを直接使う場合も、Optionalを利用してNULLの場合は0を返すようなメソッドを通す方が良い
public static BigDecimal toNumber(BigDecimal num) {
return Optional.ofNullable(num).orElse(BigDecimal.ZERO)
}
- ゼロ除算で落ちることを防止するため、以下のようなメソッドを用意しておくと良い
public static BigDecimal divide(BigDecimal num, BigDecimal divisor, int scale, RoundingMode roundingMode) {
if (divisor.compareTo(BigDecimal.ZERO) == 0) {
return BigDecimal.ZERO;
}
else {
return num.divide(divisor, scale, roundingMode);
}
}