PHP整数取余返回负数解决办法
<?php $num1 = 1494313163777; $num2 = 9999; //直接计算取余会出错,出现负数 -8779 //echo $num1 % $num2;exit; //算上PHP一个BUG吧.最主要是PHP是个弱类型语言.他内置了机器来判断用户的类型.但是机器毕竟是机器.也有判断出错的时候.就像上面.所以这时候我们就需要人工干预下 /* PHP取余默认为整数的. 而且当定义 $num1 = 1494313163777; 其实就已经溢出了.所以要加上强制类型转换.变成float类型. 但是这样还不够.因为 % 这个取模计算还是针对整数的. 所以我们需要一个函数fmod.是针对float类型的. */ $num1 = floatval($num1); $luck_num = fmod($num1, $num2); //显示38正确 echo $luck_num; ?>