正在做php前端开发,用到了php中的取余函数,发现两个情况,写出来,大家一起注意下。
1、发现mod,MOD都不行,才意识到有所改变,查找资料后发现改为了fmod(x,y)
2、在使用%取余时,发现数据不正确,本来使用的是int型数据13261711837 %1000,结果确实5504,查找资料后发现对于大整数,php会出现溢出,甚至可能返回负数情况(这是因为php默认使用整数取余的,所以你要把它转换成float类型。转化为float型后,问题解决
echo " <1> . % ";
echo 100.4567%30; // 10
echo 3.45678%2; // 1
echo 10.98765%4; // 2
echo 10.98765%2; // 0
echo " <2> . fmod";
echo fmod(100.45678,30); //10.45678
echo fmod(3.45678,2); //1.45678
echo fmod(10.98765,4); //2.98765
echo fmod(10.98765,2); //0.98765
?>