PHP语言虽然功能强大,但并不代表其没有缺点,在编写代码的过程中未免会遇到一些让人头痛的问题。下面我们将为大家介绍有关PHP整数取余返回负数的解决办法。
当你用PHP 2942769727 % 32 计算的时候 会发现输出的是 -1 正确的值应该是 31,PHP取余出现了负数,
问题所在:
PHP取余默认为整数的.而且当你定义$i = 2942769727 ;其实就已经溢出了.所以要加上强制类型转换.变成float类型.但是这样还不够.因为%这个取模计算还是针对整数的.
所以我们需要一个函数fmod.是针对float类型的.
解决方案就是:使用fmod 和floatval
$i = 2942769727;
return fmod(floatval($i), 32);