Division by zero
当我想使用模数运算符并且第二个数小于1(但当然大于0)时,有人可以解释为什么我会收到错误
当我尝试
$a = 5 $b = 3 var_dump($a % $b);die; // result is as expected int(2)
但是当我试着这个
$a = 5 $b = 0.5 var_dump($a % $b);die; // result is Warning: Division by zero bool(false)
PHP 5.4.4,debian 7
谢谢
模运算符丢弃其操作数的小数部分.从文档:
在处理之前,模数的操作数被转换为整数(通过去除小数部分).
这可以通过以下方式观察到:
$a = 5; $b = 3.6; var_dump($a % $b);die; // int(2)
要避免此行为,请改用该fmod
方法:
$a = 5; $b = 0.5; var_dump(fmod($a, $b));die; // float(0)