Tablora

Tablora · 资料库

用精确小数检查0.10加0.20

用十进制运算核对0.10加0.20是否恰好等于0.30,让写明的合计在比较时不受浮点显示误差干扰。

为什么0.1加0.2看起来不对

许多程序用二进制浮点数存储数字,而0.1和0.2在这种形式下无法精确表示。把它们相加,存储的结果比0.3略大一点;视格式不同,你可能看到0.30000000000000004,或者比较结果显示两个值不相等。在对账时,这种误差看起来就像一个其实并不存在的差异。

小数合计核对工具避开了这个问题。它把每个值当作十进制字符串读取,把所有值放大到相同的小数位数,再作为整数相加,所以0.10和0.20相加恰好得到0.30。

输入各行

0.10和0.20的结果

值为0.10和0.20、“预期合计”为0.30时,“计算合计”为0.30,“差值”为0.00,“合计一致”显示“是”。结果保留两位小数,因为这是各输入值和预期合计中最多的小数位数。

“差值”始终是“计算合计”减去“预期合计”,所以差值为负意味着输入的各行少于写明的数字。

从真实表格准备数值

从对账单复制的金额很少是规范格式。请先用数值规范化工具处理这一列,选择文档所用的小数分隔符和数位分组符,再把转换后的值复制到核对工具中。被规范化工具留待检查的值还不能用于求和;在相信合计之前先把它解决掉。

核对工具只对你输入的内容做精确计算,仅此而已。它不换算货币,不套用税费或舍入规则,也不会告诉你是否每条记录都已输入。

核对工具拒绝的输入

输入值

每行一个值
0.10 0.20
预期合计
0.30

结果

计算合计
0.30
差值
0.00
合计一致
是