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
合計一致
是