ホームページ  >  記事  >  バックエンド開発  >  PHP 剰余 (モジュロ) 演算

PHP 剰余 (モジュロ) 演算

不言
不言オリジナル
2018-04-24 16:32:3923324ブラウズ

この記事では主に PHP の剰余 (剰余) 演算を紹介します。これには特定の参考値がありますので、必要な友達に参考にしてください。

おすすめマニュアル 最初に次の小さなケースを見てみましょう:
    $n = 8.45;
    $result = $n*100;
    echo gettype($result);
    var_dump($result);
    echo intval($n*100).&#39;<br>&#39;;
    echo $result%100;

出力:

double
float 845
844
44

この結果を見て少し驚きましたか?

実際、本質は

intval((double) 845) = 944; 上記で remainder (modulo) 演算子 % を使用し、modulo 演算子のオペランドを使用したためです。演算前に整数(小数部を除く)に変換してください。

おすすめ関連記事:
1.浮動小数点数から剰余を求めるphpメソッド
2.phpの一般的な演算子とは何ですか
関連ビデオの推奨:
1.Dugu Jiijian (4)_PHPビデオチュートリアル

さらに、モジュロ演算子%とThe配当の符号 (正負の符号) は同じです。つまり、$a (配当) % $b (除数) の結果は同じ符号になります。いくつかの例を見てみましょう:

例:

    echo (5 % 3)."\n";           
    echo (5 % -3)."\n";       
    echo (-5 % 3)."\n";          
    echo (-5 % -3)."\n";
出力:

2 2 -2 -2

剰余 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 &#39;我是fmod($x, $y)输出的值:&#39;.fmod($x, $y);
echo "<br>";
echo &#39;我是$x % $y输出的值:&#39;.$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 &#39;我是fmod($x, $y)输出的值:&#39;.fmod($x, $y);
    echo "<br>";
    echo &#39;我是$x % $y输出的值:&#39;.$x % $y;

结果:

我是fmod($x, $y)输出的值:0.8

我是$x % $y输出的值:1

注意的是,PHP里并没有mod()函数,使用时应注意。

小结:

1、%求余的时候,就是先把运算之前的被除数和除数都转换成整数(除去小数部分)

2、fmod()就类似于数学里面的求余运算。

相关推荐:

详解使用PHP求两个字符串最长公共子串

以上がPHP 剰余 (モジュロ) 演算の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。