小學數學教的求餘數和php取模的區別
阿新 • • 發佈:2021-07-25
小學數學老師告訴我們,求餘數:同號相除等於正數,異號相除等於負數。但是php中取模和這個有點不一樣,主要區別在於取模的結果符號是由被除數符號決定的
小學數學老師告訴我們,求餘數:同號相除等於正數,異號相除等於負數。但是php中取模和這個有點不一樣,主要區別在於取模的結果符號是由被除數符號決定的。來人,把demo給朕抬上來~
科普
本人學渣,為了避免概念混淆,特意梳理下概念:
被除數 ➗ 除數 = 商 ... 餘數
測試
<?php // **** 為了避免%和/混淆,下面順便對比一下求商的過程,可得求商結果的符號和php運算中是一致的. echo '求商...'.PHP_EOL; echo '求商 = 被除數(正數) / 除數(負數):'.PHP_EOL; $a1 = intval(10/-3); echo $a1.PHP_EOL; echo '求商 = 被除數(負數) / 除數(正數):'.PHP_EOL; $a11 = intval(-10/3); echo $a11.PHP_EOL; echo '求商 = 被除數(負數) / 除數(正數)[使用高精度方法]:'.PHP_EOL; $a111 = bcdiv('-10', '3'); echo $a111.PHP_EOL; echo PHP_EOL.PHP_EOL; // **** 下面是求模和數學中求餘的主要區別,求模的餘數符號是由被除數的符號決定的,即使是高精度計算也一樣 **** echo '求模...'.PHP_EOL; // 求模 = 被除數 % -除數 echo '求模 = 被除數(正數) % 除數(負數):'.PHP_EOL; $a2 = 10%-3; echo $a2.PHP_EOL; echo '求模 = 被除數(負數) % 除數(正數):'.PHP_EOL; $a22 = -10%3; echo $a22.PHP_EOL; echo '求模 = 被除數(負數) % 除數(正數)[使用高精度方法]:'.PHP_EOL; $a222 = bcmod('-10', '3'); echo $a222.PHP_EOL;
結果
求商...
求商 = 被除數(正數) / 除數(負數):
-3
求商 = 被除數(負數) / 除數(正數):
-3
求商 = 被除數(負數) / 除數(正數)[使用高精度方法]:
-3
求模...
求模 = 被除數(正數) % 除數(負數):
1
求模 = 被除數(負數) % 除數(正數):
-1
求模 = 被除數(負數) % 除數(正數)[使用高精度方法]:
-1