为什么不能用浮点数表示金额? 面试回答模板¶ 面试官: 为什么不能用浮点数表示金额? 你: 核心就一条:浮点数二进制存不了十进制小数,算钱有精度误差。 比如 0.1 + 0.2,你用 double 算出来是 0.30000000000000004,不是 0.3。金额差一分一毫就是事故,对账对不上、退款算错、财务告警。 正确做法: 用 BigDecimal,或者把元转成分用 long 存整数,100 分就是 1.00 元,整数运算没有精度问题。