我只是想知道$ x是否可以被$ y整除。例如起見假設:
$x = 70;
$y = .1;
我想的第一件事是:
$x % $y
這似乎當這兩個數字都是整數的工作,但如果他們沒有失敗,如果$y
是一個十進制小於1倍的回報一個「零除」的錯誤,所以然後我試過:
fmod($x,$y)
這返回同樣令人困惑的結果,「0.099999999999996」。
php.net指出fmod()
:
返回除數(Y)除以股息(X)的浮點餘
那麼根據我的計算器70/.1 = 700
。這意味着餘數是0.有人可以解釋我做錯了什麼嗎?
並非所有值都具有一個確切的浮點數的表示:這是因此沒有「[完美]均勻地」(除了整數的情況外)就像「足夠接近」一樣。 – user2864740
[這也發生在bcmod()上。](http://codepad.viper-7.com/ztb1Y2) –