兄弟们,我人傻了。
之前写咖啡店的点单系统,有个满减计算逻辑,测试了八百遍没问题,上线后偶尔出现一分钱对不上的情况。客户结账299.99,活动满300减50…,系统死活不认。
debug三天,最后发现是0.1+0.2不等于0.3这个经典老坑。Java的float精度丢失,累加的时候偷偷吞了0.0000001,刚好卡再299.9999999。
我去
改成BigDecimal之后世界和平,但我的头发回不来了。哈哈
最搞笑的是,我之前在大厂写推荐算法,天天跟浮点数打交道,居然在这种小地方翻车。果然代码写得越少,翻车越狠。
你们还踩过哪些看起来很简单、实则很阴间的坑?让我涨涨见识
哈哈
反正闲着也是闲着