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,“合计一致”显示“是”。结果保留两位小数,因为这是各输入值和预期合计中最多的小数位数。
“差值”始终是“计算合计”减去“预期合计”,所以差值为负意味着输入的各行少于写明的数字。
从真实表格准备数值
从对账单复制的金额很少是规范格式。请先用数值规范化工具处理这一列,选择文档所用的小数分隔符和数位分组符,再把转换后的值复制到核对工具中。被规范化工具留待检查的值还不能用于求和;在相信合计之前先把它解决掉。
核对工具只对你输入的内容做精确计算,仅此而已。它不换算货币,不套用税费或舍入规则,也不会告诉你是否每条记录都已输入。
核对工具拒绝的输入
- 带分组逗号的1,234.50,或使用小数逗号的1234,50:请先用数值规范化工具转换。
- 带加号的+5.00:请输入5.00。
- 没有前导零的.50:请输入0.50。
- 括号里的(2.50):请输入-2.50。
- 只要有其中任何一项,整个计算都会停下并显示“请检查输入的数值后重试。”,因此有问题的行绝不会被悄悄跳过。
输入值
- 每行一个值
- 0.10 0.20
- 预期合计
- 0.30
结果
- 计算合计
- 0.30
- 差值
- 0.00
- 合计一致
- 是