double 値を受け付ける BigDecimal コンストラクターへの呼び出しを報告します。
このようなコンストラクターは、与えられた double 値と正確に等しい BigDecimal を生成します。
ただし、double は IEEE 754 64 ビット倍精度バイナリ浮動小数点形式でエンコードされているため、正確な値を期待できない場合があります。
たとえば、new BigDecimal(0.1) は BigDecimal オブジェクトを生成します。 その値は 0.1000000000000000055511151231257827021181583404541015625 であり、これは double で表現可能な 0.1 に最も近い数値です。
ソースコードの記述と同じ値を格納する BigDecimal を得るには、new BigDecimal("0.1") または BigDecimal.valueOf(0.1) のいずれかを使用してください。
例:
class Constructor {
void foo() {
new BigDecimal(0.1);
}
}
クイックフィックス適用後:
class Constructor {
void foo() {
new BigDecimal("0.1");
}
}