PHP整数取余返回负数解决办法

时间:2023-03-09 02:57:57
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; ?>