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;


?>

 

posted @ 2017-06-12 16:08  风吹屁股凉冰冰  阅读(880)  评论(0编辑  收藏  举报