
我正在 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
。