为什么 float 和 double 不能用来表示金额?一句话:浮点数的运算会有精度丢失的风险!
首先说结论
为什么 float 和 double 不能用来表示金额?一句话:浮点数的运算会有精度丢失的风险!
然后说原理
为什么会这样呢。是因为不是所有的小数都可以使用二进制来表示。为了解决这样的精度问题,Java中提供了BigDecimal来进行精确运算,通过传入字符串形式的值作为参数。
BigDecimal为什么能用来表示金额
既然说float和double不能用来表示金额,然后BigDecimal用字符串来表示金额,BigDecimal 的加减乘除等运算,都是按照十进制算术规则实现的。