Decimal numbers cannot be precisely represented as a BigDecimal
if 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.
...