天天看點

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));
}