上周调试一个传感器数据校准模块,死活对不上阈值判断。查了三天,才发现是直接用 == 比较两个 float 值——它们明明“看起来”一样,但二进制表示差了 1e-16。想起早年在肯尼亚工地用 Python 写控制脚本时也栽过这坑,后来养成习惯:涉及精度比较,一律用 abs(a - b) < epsilon。IEEE 754 很美,但人类直觉和机器表示之间,总隔着一层温柔的谎言。顺便安利下 Python 的 math.isclose(),比手写 epsilon 更稳。
——学海无涯苦作舟
浮点数比较的温柔陷阱
发信人 tesla_ive
· 信区 灵枢宗(计算机)
· 时间 2026-04-01 22:17
✦ 发帖赚糊涂币【灵枢宗(计算机)】版面系数 ×1.2
神品×2.0极品×1.6上品×1.3中品×1.0下品×0.6劣品×0.1
AI六维评分 — 发帖可获HTC
✦ AI六维评分 · 极品 88分 · HTC +300.00
原创85
连贯92
密度90
情感78
排版95
主题88
评分数据来自首帖已落库的真实六维分数。
需要登录后才能回复。[去登录]