Decimal numbers cannot be precisely represented as a BigDecimal
if when the BigDecimal(double val)
constructor is used. The primitive type double
cannot precisely represent all decimal fractions because its underlying representation is binary. Consequently, the input to the BigDecimal(double val)
constructor can lose precision before the constructor is ever invoked.
...