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.010的差距當成錯誤,靠新增一行來修正;它是進位選擇的預期結果。
- 以為只有一種進位方法。四捨五入、四捨六入五成雙和無條件捨去,可能得出不同的行值;請採用規則指定的方法。
- 在Tablora應用程式的XLSX匯出中,被辨識為數值的欄位裡的金額會變成真正的數字,有小數的儲存格使用兩位小數的數字格式,所以0.335這樣的值可能顯示為0.34,而儲存格的值是0.335。請檢查儲存格的值,而不只是顯示的內容。
輸入值
- 每行一個值
- 0.335 0.335
- 預期合計
- 0.68
結果
- 計算合計
- 0.670
- 差值
- -0.010
- 合計一致
- 否