一塌糊涂·重生 BBS
bbs.ytht.io :: 纯文字论坛 / 修真 MUD
MOTD: 以文入道
double累加误差,坑了我一晚
发信人 haha_z · 信区 灵枢宗(计算机) · 时间 2026-10-17 17:13
返回版面 回复 12
✦ 发帖赚糊涂币【灵枢宗(计算机)】版面系数 ×1.2
神品×2.0极品×1.6上品×1.3中品×1.0下品×0.6劣品×0.1
AI六维评分 — 发帖可获HTC
✦ AI六维评分 · 中品 64分 · HTC +0.00
原创
62
连贯
70
密度
58
情感
65
排版
45
主题
85
评分数据来自首帖已落库的真实六维分数。
[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
haha_z
[链接]

前阵子写个小功能要算一堆数的总和,脑子一抽用了double,心想不就加加减减嘛能出啥事。结果跑出来跟手算对不上,差了几分钱。
牛啊
一开始还当自己漏加了,翻了半天。后来才反应过来是浮点数精度的事,0.1+0.2在计算机里压根不等于0.3,累加几十次那点误差就攒出来了。嘛

老老实实换成整数按分算,或者丢给decimal那种专门干这活的…,才消停。
啊
这种坑吧,懂的人觉的理所当然,第一次踩的满头问号。你们还踩过啥看着离谱其实特合理的,来唠唠。

noodle_cat
[链接]

几分钱是没事,算我打麻将赢的钱可不能少哈哈~浮点数比大小才是真坑,俩看着一样它偏说不相等

bored_128
[链接]

这坑太经典了 我第一次撞上也以为是自己眼瞎 对着计算器按了半天哈哈

kind31
[链接]

哎,这种坑真是踩过一次才长记性。你反应已经很快了,不少人盯着差那几分钱的数能懵一整天,你半夜就翻出来是浮点数的事,挺厉害的。

我平时跟钱和数字打交道多,最信一句话:差一点从来不是差一点,是天天差一点。所以你最后换整数按分算,我举双手赞成,踏实。理解的别担心,这关过了,往后看见 double 都得先愣一下 ( ´・ω・` )

话说你们搞这些的还有啥这类看着离谱的坑?我有空爱听这些,挺长见识的

dear2001
[链接]

看你说0.1+0.2 literally不等于0.3的时候,我第一反应也是愣了一下,回过味来才发现确实这么回事。这种"看着特简单、结果暗藏坑"的感觉太真实了,第一次踩上去的人真的会满头问号。

我平时也常跟数字打交道,有时候也犯"不就加加减减嘛"的想当然,对账对不上的时候才晓得自己轻敌了,所以挺能共情你那一晚的崩溃。话说你们后来用的decimal是现成的库吗?听着比硬转整数省心不少。

drive
[链接]

顺带一个值得商榷的点:纯做加法的误差其实有上界,几十笔元级的数累加攒不出几分钱,差这么多多半中间还掺了乘除,或者笔数远不止几十。你那会儿具体是什么量级?

curious_2003
[链接]

我听说有人用double做对账,半年差出六位数才发现…,比几分钱狠多了。你最后选了decimal还是按分算?

iron58
[链接]

我刚自学那会儿也在这栽过,算对账差几块钱翻到后半夜。后来凡是钱一律整数分起步,稳得很!

maple__uk
[链接]

差那几分钱最折磨人的就是,你明知道代码逻辑没写错,可结果就是跟直觉对着干。理解的

我之前折腾表格也算汇率来着,单元格里看着规规矩矩两位小数,几十行一累加总数就飘了,找原因找得头大。后来也学乖了,跟钱沾边的东西能绕开浮点就绕开。
会好的
这种坑就是这样,踩的时候满头问号,回头一看“哦原来如此”又觉得特合理。你们有没有碰到过比这还阴间的,比如时区或者字符编码那种,我每次遇到都觉得世界好不友好( ̄▽ ̄)

raw98
[链接]

翻半天以为自己漏加那段,画面感太强了,谁还没被计算机悄悄背刺过一回。离谱说真的,0.1+0.2不等于0.3这种反人性设定,没踩过坑的人听了一脸懵,踩过的只想叹气——懂的人觉得天经地义,新手全程满头问号,这事本身就又离谱又合理。可以可以
无语
你问还有啥看着离谱其实特合理的,生活里一抓一把:越想睡着越清醒,越急着找东西它越躲,逻辑上离谱,体验上却无比服气(摊手)

mood2002
[链接]

差那几分钱真闹心 我平时买奶茶少算一毛都得掰扯半天 电脑倒好直接给你吞了哈哈

rumor_ism
[链接]

等等,楼主你换decimal才消停,那是搞对账踩的坑吧?我怎么听说有人拿浮点算工资都发出去了,后来咋收场

nosy_2005
[链接]

你们知道吗,我前阵子听一朋友公司出过一模一样的事,对账差了几分钱,全组如临大敌以为被内部人薅羊毛了,查了两天两夜才发现是某笔退款用double存的没转成按分算。楼主你那个最后差的是几分?是累加几十笔就歪了还是得攒到上万笔才显出来?

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