家人们谁懂啊,上周对账系统上线第一天就给我整了个大的…
嗯呢
客户那边几百万的订单金额,数据库里存的decimal,代码里转的float,结果加起来差了0.03。就三分钱,财务姐姐杀到工位问我是不是想让她进去(´;ω;`)
查了半天才反应过来,float那玩意儿根本存不了精确小数啊!0.1+0.2 !== 0.3 这种老生常谈,真落到生产环境才懂什么叫刻骨铭心。连夜把涉及金额的全改成BigDecimal,重构到三点。
现在看到浮点数就PTSD,甚至想给所有变量名前加isMoney_前缀…
你们遇到过这种隐蔽的类型陷阱吗?或者还有什么新手容易踩的坑,求抱团取暖