This article mainly introduces the remainder (modulus) operation in PHP, which has a certain reference value. Now I share it with everyone. Friends in need can refer to it
Recommended Manual: php complete self-study manual
Let’s look at the next small case first:
$n = 8.45; $result = $n*100; echo gettype($result); var_dump($result); echo intval($n*100).'<br>'; echo $result%100;
Output:
double float 845 844 44
Are you a little surprised to see this result?
In fact, the essence is intval((double) 845) = 944; because we used asking for remainder (modulo) operator %, while the operands of the modulo operator will be converted to integers (except for the decimal part) before operation.
Recommended related articles:
1.php Method of taking remainder from floating point number
2.What are the common operators in php
Related video recommendations:
1.Dugu Jiujian (4)_PHP video tutorial
In addition, the result of the modulo operator % is the same as the sign (sign) of the dividend. That is, $a (dividend) % $b (divisor) has the same sign as the result. Let’s look at a few examples:
Such as:
echo (5 % 3)."\n"; echo (5 % -3)."\n"; echo (-5 % 3)."\n"; echo (-5 % -3)."\n";
Output:
2 2 -2 -2
Let's introduce another Math function related to remainder fmod(). This function mainly returns the floating point remainder of division.
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()就类似于数学里面的求余运算。
相关推荐:
The above is the detailed content of PHP remainder (modulo) operation. For more information, please follow other related articles on the PHP Chinese website!