跳转至

为什么不能用浮点数表示金额?

面试回答模板

面试官: 为什么不能用浮点数表示金额?

你:

核心就一条:浮点数二进制存不了十进制小数,算钱有精度误差。

比如 0.1 + 0.2,你用 double 算出来是 0.30000000000000004,不是 0.3。金额差一分一毫就是事故,对账对不上、退款算错、财务告警。

正确做法: 用 BigDecimal,或者把元转成分用 long 存整数,100 分就是 1.00 元,整数运算没有精度问题。

deepseek_mermaid_20260612_62054f.png