PHP的求餘(模數)運算

來源:互聯網
上載者:User
這篇文章主要介紹了關於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;因為我們上面用到了求餘(模數)運算子%,而模數運算子的運算元在運算之前都會轉換成整數(除去小數部分)。

此外,模數運算子 % 的結果和被除數的符號(加號或減號)相同。即 $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求兩個字串最長公用子串

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.