double 値を受け付ける BigDecimal コンストラクターへの呼び出しを報告します。
このようなコンストラクターは、与えられた double 値と等しい BigDecimal を生成します。
ただし、double は IEEE 754 64 ビット倍精度バイナリ浮動小数点形式でエンコードされているため、正確な値を期待できない場合があります。
たとえば、new BigDecimal(0.1) は値 0.1000000000000000055511151231257827021181583404541015625 を含む BigDecimal オブジェクトを生成します。これは、double として表現可能な値 0.1 に最も近い数です。
期待通りの値 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");
}
}