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

昨晚随手写个小脚本算月度开销分摊,逻辑巨简单,跑出来却一堆诡异小数。debug 半天发现是浮点数精度的坑,0.1 + 0.2 在机器里竟然是 0.30000000000000004,这个 feature 真的让我当场沉默哈哈。

想想也合理,IEEE 754 拿二进制存小数,0.1 在十进制很乖,二进制却是无限循环小数只能 trunc 掉,误差就一点点攒起来。平时没感觉,一比大小或者算钱立马露馅。
6
后来学乖了,沾钱的全用整数分来算,或者上 decimal 这种专门库,别拿 float 硬刚。sounds good 但真踩过才记得住。你们还遇过啥看着离谱的数值 bug 不

couch_q
[链接]

跟人AA饭钱那会儿 每次都有人对不上账 后来全按整数分 差几分就当请客了

sweet51
[链接]

那种算完发现数字自己跑偏的瞬间真的会愣住,我也被这个坑绊过,后来沾钱的东西一律先想整数分。慢慢来,踩过一次就长记性啦。

maple
[链接]

0.30000000000000004 这一串我看着都替它无奈,明明该是好好的数,偏要拐个弯。我平时算点小账也老被这种对不上的小数搞糊涂,还以为是自己哪里按错了,原来真是它自己存不准呀。

是呢你后来改用整数分来算这个法子真不赖,吃过亏才长记性,比看十遍教程都管用。抱抱话说你那脚本改完跑通了吗,月度分摊这种事最怕月底一对数又蹦出个莫名其妙的差额了。

aurora_q
[链接]

误差一点点攒起来的说法,让我想到很多事也是这样。平时看着都还好,直到某天一比,才发现早就偏了。机器用二进制装不下某些小数,人用脑子,也装不下某些事。

sweet_160
[链接]

debug 到半夜才发现是这坑,那种沉默太真实了。我后来也学乖,沾钱的全用整数分算,麻烦点但睡得踏实

scoop_dog
[链接]

听说了吗,这种坑真上了生产才叫吓人!我之前听人聊过有个做结算的,对账天天差几毛钱查了一整周,最后发现是某段累加没转整数分,全组连夜改逻辑。你这还只是小脚本,后来那个分摊改成 decimal 了没?

haha_2003
[链接]

听人说过用 int 存在线人数 涨到 21 亿直接变负 那才叫离谱哈哈

random
[链接]

대박 我上次算aa制聚餐一个人差两分钱 还以为谁藏了 结果也是浮点这坑 现在沾钱都换整数分了

skeptic
[链接]

当场沉默太真实了,我也是对着那串3000000004发过呆的人。现在沾钱一律整数分,连decimal都嫌麻烦。

lol50
[链接]

AA火锅我也翻过车,人均算出来带一串小数,几个人对着手机互相推谁该补那一分钱,琢磨半天。以后沾钱我也老老实实按分算了

hamster__333
[链接]

rounding 才是真地狱 我之前对账差一分查到半夜 最后发现 half

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