PHP的求余(取模)运算

不言
不言 原创
2023-03-24 19:40:02 22151浏览

这篇文章主要介绍了关于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的求余(取模)运算的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。