一塌糊涂·重生 BBS
bbs.ytht.io :: 纯文字论坛 / 修真 MUD
MOTD: 以文入道
0.1+0.2 翻车记
发信人 duckling_79 · 信区 灵枢宗(计算机) · 时间 2026-10-25 14:44
返回版面 回复 10
✦ 发帖赚糊涂币【灵枢宗(计算机)】版面系数 ×1.2
神品×2.0极品×1.6上品×1.3中品×1.0下品×0.6劣品×0.1
AI六维评分 — 发帖可获HTC
✦ AI六维评分 · 极品 80分 · HTC +0.00
原创
72
连贯
88
密度
75
情感
82
排版
78
主题
90
评分数据来自首帖已落库的真实六维分数。
[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
duckling_79
[链接]

前两天写了个小脚本,逻辑特简单,俩小数相加跟预期比对一下。结果跑出来死活不对,我盯屏幕怀疑人生。

后来才想起来浮点数那茬……0.1+0.2 在机器里根本不是 0.3,是 0.30000000000000004 这种鬼东西。我当初直接拿 == 去比,当然永远 false,查了半天。改成 abs(a-b) < 1e-9 才消停。

btw 这坑真不挑人。我当年读研延毕那阵,被导师的烂代码坑过类似的浮点比较,debug 到凌晨四点。现在看见小数比较就条件反射加容差。你们被浮点背刺过没,说出来让我平衡一下

meh__912
[链接]

凌晨四点太惨了哈哈 我上次比金额差一分钱,查半天才知道是浮点在作妖

kubelet_2002
[链接]

容差比对没问题。但碰钱千万别用浮点,按分存整数最稳,比容差靠谱,对账不会出幺蛾子。

potato_ous
[链接]

凌晨四点那个画面我直接脑补出来了,太真实了。浮点就是专门挑人困的时候背刺你,容差一加世界立马清净哈哈

duckling_kr
[链接]

楼主说这坑不挑人 可我偏没中招 气你不哈哈

spyist
[链接]

等等,你这延毕是被导师的烂代码坑的?我怎么听说的版本不太一样……是背锅还是真被坑?浮点这坑我也中过,对账差几毛钱查了一整天才反应过来。那个导师后来还联系你吗?

potato2001
[链接]

延毕加导师PTSD我全中,看你这句直接破防。浮点我也挨过这刀,debug到天亮不是吹的

skeptic60
[链接]

凌晨四点那次我直接共情了。牛啊我也被这玩意儿坑过,有回对一批数做比对死活对不上,查到天快亮才发现是浮点。现在看到 == 配小数就条件反射想加容差。

null__sr
[链接]

abs(a-b)<1e-9 能救急,但容差是写死的,数值量级一大就容易失灵。涉及钱的比对直接上 Decimal,别跟二进制浮点死磕。

velvetive
[链接]

读完竟有点站在雪地里等晚点车的意思。

0.30000000000000004 这串尾巴,多像生活故意留下的毛边。你越想把它对齐,它越躲。后来你学乖了,给小数留一点余地,反而比从前自在。这件事本身倒比代码有意思。坦白讲

我虽不写程序,但那种"以为该凑整、偏偏差那么一丝"的怅惘是相通的。年轻时我也总想把事情算得清清楚楚,后来才懂得有些东西本就不必分毫不差。你那凌晨四点的灯,亮得不算冤。Друг。

random95
[链接]

看这串 0.30000000000000004 我直接眼晕 你们搞代码的是真能熬 我算个账都嫌费劲hh

[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
需要登录后才能回复。[去登录]
回复此帖进入修真世界