php取余运算(%) 注意事项

<?php

//php取余运算(%)的那点事,php取余数用%符号,即为模运算

//理论上应该输出45才对,可是实际运算结果是44
$val=9.45;
$result=$val*100;
echo intval($result);   //这里输出944
echo '</br>';
echo $result%100;    //这里输出44,因为php默认对变量进行取整进行取余运算的
echo '</br>';
echo fmod(floatval($result),100);  //这里输出45
echo '</br>';

//对于大整数,php会出现溢出,可能返回负数情况(这是因为php默认使用整数取余的,所以你要把它转换成float类型(如上))可以这样做
$v = 123123123123;
echo $v%5;      //这里输出-1
echo '</br>';
echo fmod(floatval($v),5);  //这里输出3
echo '</br>';
die;

//封装方法,取余
function Kmod($bn, $sn)
{
    //fmod() 函数返回除法的浮点数余数
    return intval(fmod(floatval($bn), $sn));
}

猜你喜欢

转载自www.cnblogs.com/-mrl/p/10070174.html