Tablora

Tablora · 资料库

区分原始精度与逐行舍入

0.335加0.335等于0.670,但先逐行舍入会得到0.68。了解核对工具如何显示舍入阶段造成的差额,以及如何两种都测试。

同一个求和,两个诚实的答案

发票、税务汇总和工资单常涉及小数位多于货币允许的金额。有的系统先把精确值相加再舍入合计;有的系统先逐行舍入再相加。两种做法都合理,在同样的数据上可能相差一分甚至更多。采用哪种,由文档背后的计费、税务或会计规则决定,而不是由算术决定。

小数合计核对工具精确地加总你给它的字符串,从不舍入。这让它很适合用来判断一个写明的合计采用的是哪个阶段。

差额往往随行数增加而变大。每行多舍入出来的零点几分都会累积进去,所以一张长发票在两种方法之间可能相差不止一分。

计算0.335示例

本页示例输入0.335和0.335,“预期合计”为0.68。“计算合计”为0.670,“预期合计”以相同位数显示为0.680,“差值”为-0.010。“合计一致”显示“否”。

现在按每行先舍入到两位小数后的样子输入:0.34和0.34。“预期合计”同样为0.68时,“计算合计”为0.68,“差值”为0.00。可见写明的数字是先逐行舍入再相加得出的,而不是对总和舍入。

测试采用的是哪个阶段

要避免的精度陷阱

输入值

每行一个值
0.335 0.335
预期合计
0.68

结果

计算合计
0.670
差值
-0.010
合计一致
否