【发布时间】:2014-03-21 19:47:30
【问题描述】:
我只是想知道 $x 是否可以被 $y 整除。例如,假设:
$x = 70;
$y = .1;
我尝试的第一件事是:
$x % $y
这似乎在两个数字都是整数时有效,但如果不是整数则失败,并且如果 $y 是小于 1 的小数,则返回“除以零”错误,所以我尝试了:
fmod($x,$y)
返回同样令人困惑的结果,“0.099999999999996”。
php.net 声明fmod():
返回被除数 (x) 除以除数 (y) 的浮点余数
根据我的计算器70 / .1 = 700。这意味着余数为 0。有人可以解释我做错了什么吗?
【问题讨论】:
-
并非所有值都有精确的浮点表示:因此它不是“[完美]均匀”(整数除外),而是“足够接近”。
标签: php floating-point modulus