Excel mod函數捨入誤差

Excel mod函數捨入誤差

我正在 Excel 中測試 0.4 的倍數。

=MOD(1.2;0.4)

當它應該回傳零時卻回傳 0.4。

答案1

原因是 Excel 內部使用浮點數。

這意味著 0.4 在內部表示為小數點右邊的位元序列,分別表示 1/2、1/4、1/8、1/16 等,最多約為 1/(2^31 )。

因此,任何事物不是一個整數(並且不是確切地可以用上面列出的分數表示)有一個與之相關的捨入誤差;這也適用於計算的每一步。

MOD(*,0.4)這只是一個展示這一點的例子(我給你的是一個相當明顯的例子)。

基本上,您不能可靠地使用MOD非整數作為第二個參數。如果可以的話,您需要對資料進行相應的乘法和除法(例如=MOD(10*x;10*m)/10),或者自己編寫 MOD 公式:=x-INT(x/m)*m

相關內容