這篇文章主要介紹了關於PHP的求餘(取模)運算,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
推薦手冊:php完全自學手冊
先來看下個小案例:
$n = 8.45; $result = $n*100; echo gettype($result); var_dump($result); echo intval($n*100).'<br>'; echo $result%100;
輸出:
double float 845 844 44
看到這結果,大家有沒有有點驚訝呢?
其實,本質就是為intval((double) 845) = 944;因為我們上面用到了求餘(取模)運算子%,而取模運算子的運算元在運算之前都會轉換成整數(除去小數部分)。
相關文章推薦:
1.php 浮點數取餘的方法
2.php中常見的運算子有哪些
相關影片推薦:
1.獨孤九賤(4)_PHP影片教學
此外,取模運算子% 的結果和被除數的符號(正負號)相同。即 $a(被除數) % $b(除數) 的結果和的符號相同。接下來看幾個例子:
如:
echo (5 % 3)."\n"; echo (5 % -3)."\n"; echo (-5 % 3)."\n"; echo (-5 % -3)."\n";
輸出:
2 2 -2 -2
我們再來介紹一個跟求餘有關的Math函數fmod(),這個函數主要是傳回除法的浮點數餘數。
float fmod ( float $x , float $y )
返回被除数(x
)除以除数(y
)所得的浮点数余数。余数()的定义是:x = i * y + r,其中 是整数。如果 y
是非零值,则 和 x
的符号相同并且其数量值小于 y
。 其实实质就是x/y的浮点数余数。
例子:
$x = 5; $y = 2; // $t = mod($x, $y);//Fatal error: Call to undefined function mod() echo '我是fmod($x, $y)输出的值:'.fmod($x, $y); echo "<br>"; echo '我是$x % $y输出的值:'.$x % $y;
结果:
我是fmod($x, $y)输出的值:1
我是$x % $y输出的值:1
$x = 5.8; $y = 2.5; // $t = mod($x, $y);//Fatal error: Call to undefined function mod() echo '我是fmod($x, $y)输出的值:'.fmod($x, $y); echo "<br>"; echo '我是$x % $y输出的值:'.$x % $y;
结果:
我是fmod($x, $y)输出的值:0.8
我是$x % $y输出的值:1
注意的是,PHP里并没有mod()函数,使用时应注意。
小结:
1、%求余的时候,就是先把运算之前的被除数和除数都转换成整数(除去小数部分)
2、fmod()就类似于数学里面的求余运算。
相关推荐:
以上是PHP的求餘(取模)運算的詳細內容。更多資訊請關注PHP中文網其他相關文章!