本文目錄一覽:
- 1、PHP取余函數介紹MOD(x,y)與x%y
- 2、PHP-bc函數及其應用詳解
- 3、PHP怎麼實現整除
- 4、PHP中除法運算的結果都為浮點數,即使相除的兩個變量都為整數。 為什麼
- 5、php中怎麼實現兩數相除時,如果是整數結果就不變,如果結果有小數點就把整數+1,
- 6、PHP計算百分比的公式函數,如何把數值裝進計算
PHP取余函數介紹MOD(x,y)與x%y
取余函數
PHP取余函數
PHP兩個取余
MOD(x,y)
x%y
MOD
例如:9/3,9是被除數,3為除數.mod函數是一個求余函數,其格式為:
mod(nExp1,nExp2),即是兩個數值表達式作除法運算後的餘數。那麼:兩個同號整數求余與你所知的兩個正數求余完全一樣(即兩個負整數與兩個正整數的算法一樣)。
一、兩個異號整數求余
1.函數值符號規律(餘數的符號)
mod(負,正)=正
mod(正,負)=負
結論:兩個整數求余時,其值的符號為除數的符號。
2.取值規律
先將兩個整數看作是正數,再作除法運算
①能整除時,其值為0
②不能整除時,其值=除數×(整商+1)-被除數
例:mod(9,-8)=-7
即:9除以8的整數商為1,加1後為2;其與除數之積為18;再與被數之差為7;取除數的符號。所以值為-7。
二、兩個小數求余
取值規律:被除數-(整商×除數)之後在第一位小數位進行四捨五入。
例:mod(9,1.2)=1
即:9除1.2其整商為7;7與除數1.2之積為8.4;8.4四捨五入之後為8;被除數9與8之差為1。故結果為1。
例:mod(9,2.4)=0
即:9除2.2其整商為4;4與除數2.2這積為8.8;8.8四捨五入之後為9;被除數9與9之差為0。故結果為0。
OK,就這些不知能否滿足您的需要?
%
複製代碼
代碼如下:
?php
echo
15%4;
//結果是
3
說說php取余運算(%)的那點事
今天我是看到百度知道中這個例子:
,才想研究下php取余的!
複製代碼
代碼如下:
?php
$val=9.45;
$result=$val*100;
echo
$result%100;
//44
?
提問者奇怪,為什麼上面輸出的記過是44
而不是想象中的45
,如果你這樣:
echo
945%100
//45
那麼結果應該是45的,這是因為php默認對變量進行取整進行取余運算的。
關於php浮點數,情況laruence博客文章:
然後看看下面的php代碼:
複製代碼
代碼如下:
?php
/*
*
name:
mckee
*
blog:
*/
$val=9.45;
$result=$val*100;
echo
intval($result);
//這裡輸出944
echo
$result%100;
//這裡輸出44
echo
fmod(floatval($result),100);
//這裡輸出45
?
對於大整數,php會出現溢出,可能返回負數情況(這是因為php默認使用整數取余的,所以你要把它轉換成float類型(如上))可以這樣做:
複製代碼
代碼如下:
function
Kmod($bn,
$sn)
{
return
intval(fmod(floatval($bn),
$sn));
}
PHP-bc函數及其應用詳解
bcadd —— 兩個任意精度數字的加法計算 (PHP 4, PHP 5, PHP 7, PHP 8)
bcadd ( string $num1 , string $num2 , ?int $scale = null ): string
註:對 num1 和 num2 求和。
參數:
num1 — 左操作數,字符串類型。
num2 — 右操作數,字符串類型。
scale — 此可選參數用於設置結果中小數點後的小數位數。也可通過使用 bcscale() 來設置全局默認的小數位數,用於所有函數。如果未設置,則默認為 0。 現在 scale 可以為 null。
返回值: 以字符串返回兩個操作數求和之後的結果。
範例:
bcsub —— 兩個任意精度數字的減法 (PHP 4, PHP 5, PHP 7, PHP 8)
bcsub ( string $num1 , string $num2 , ?int $scale = null ): string
註: num1 減去 num2 。
參數:
num1 — 左操作數,字符串類型。
num2 — 右操作數,字符串類型。
scale — 此可選參數用於設置結果中小數點後的小數位數。也可通過使用 bcscale() 來設置全局默認的小數位數,用於所有函數。如果未設置,則默認為 0。 現在 scale 可以為 null。
返回值: 以 string 類型返回減法之後的結果。
範例:
bcmul —— 兩個任意精度數字乘法計算 (PHP 4, PHP 5, PHP 7, PHP 8)
bcmul ( string $num1 , string $num2 , ?int $scale = null ): string
註: num1 乘以 num2 。
參數:
num1 — 左操作數,字符串類型。
num2 — 右操作數,字符串類型。
scale — 此可選參數用於設置結果中小數點後的小數位數。也可通過使用 bcscale() 來設置全局默認的小數位數,用於所有函數。如果未設置,則默認為 0。 現在 scale 可以為 null。
返回值: 以 string 類型返回減法之後的結果。
範例:
bcp —— 兩個任意精度的數字除法計算 (PHP 4, PHP 5, PHP 7, PHP 8)
bcp ( string $num1 , string $num2 , ?int $scale = null ): string
註: num1 除以 num2 。
參數:
num1 — 左操作數,字符串類型。
num2 — 右操作數,字符串類型。
scale — 此可選參數用於設置結果中小數點後的小數位數。也可通過使用 bcscale() 來設置全局默認的小數位數,用於所有函數。如果未設置,則默認為 0。 現在 scale 可以為 null。
返回值: 以 string 類型返回減法之後的結果。
範例:
bccomp —— 比較兩個任意精度的數字 (PHP 4, PHP 5, PHP 7, PHP 8)
bccomp ( string $num1 , string $num2 , ?int $scale = null ): int
註: 比較 num1 和 num2 , 並且返回整型數字的結果。
參數:
num1 — 左邊的運算數,是一個字符串。
num2 — 右邊的運算數,是一個字符串。
scale — 可選的 scale 參數被用作設置指示數字, 在使用來作比較的小數點部分。
返回值: 兩個數相等時返回 0; num1 比 num2 小時返回 -1; 其他則返回 1。現在 scale 可以為 null。
範例:
bcmod —— 任意精度數字取模 (PHP 4, PHP 5, PHP 7, PHP 8)
bcmod ( string $num1 , string $num2 , ?int $scale = null ): string
註: 對 num1 使用 num2 取模。 除非 num2 是零,否則結果必定和 num1 有相同的符號。
參數:
num1 — string 類型的被除數。
num2 — string 類型的除數。
scale — 現在 scale 可以為 null。
返回值: 返回字符串類型取模後的結果,如果 num2 為 0 則返回 null。
範例:
bcpow—— 任意精度數字的乘方 (PHP 4, PHP 5, PHP 7, PHP 8)
bcpow ( string $num , string $exponent , ?int $scale = null ): string
註: num 的 exponent 次方運算。
參數:
num — string 類型的底數。
exponent — string 類型的指數。 如果指數不是整數,將被截斷。 指數的有效範圍取決於平台,但起碼支持 -2147483648 到 2147483647 的範圍。
scale — 此可選參數用於設置結果中小數點後的小數位數。也可通過使用 bcscale() 來設置全局默認的小數位數,用於所有函數。如果未設置,則默認為 0。
返回值: 返回字符串類型的結果。
範例:
bcpowmod —— 先取次方然後 取模 。 (PHP 5, PHP 7, PHP 8)
bcpowmod ( string $num , string $exponent , string $modulus , ?int $scale = null ): string
註: 先取次方然後取模。
參數:
base — 左操作數。它是一個字符串類型的參數。
exponent — string 類型的指數。 指數的正確操作數。
modulus — string 類型的 參 數。 接受表示模數的操作數。
scale — 一個整數類型參數。它說明 ( base exponent %mod ) 結果中小數點後的位數。其默認值為 0。
返回值: 該函數將結果作為字符串返回。或者,如果模數為 0 或指數為負,則返回 False。
範例:
bcscale —— 設置/獲取所有 bc math 函數的默認小數點保留位數 (PHP 4, PHP 5, PHP 7, PHP 8)
bcscale ( int $scale ): int
設置所有 bc math 函數在未設定情況下的小數點保留位數。
bcscale ( null $scale = null ): int
註: 獲取當前的小數點保留位數。
參數:
scale — 小數點保留位數。
返回值: 設置的時候,返回之前的小數點保留位數。否則就是返回當前的位數。
範例:
bcsqrt —— 任意精度數字的二次方根 (PHP 4, PHP 5, PHP 7, PHP 8)
bcsqrt ( string $num , ?int $scale = null ): string
註: 返回 num 的二次方根。
參數:
num — string 類型的操作數 。
scale — 此可選參數用於設置結果中小數點後的小數位數。也可通過使用 bcscale() 來設置全局默認的小數位數,用於所有函數。如果未設置,則默認為 0。
返回值: 以 string 類型返回二次方根的結果,如果 num 是負數則返回 null。
範例:
PHP怎麼實現整除
如果我們使用’/’操作符進行除法運算時,如果遇到無法除盡的情況,會得到小數值。如果我只希望得到整數部分,怎麼辦呢?
在PHP的數學函數庫里提供了多個函數供我們選擇:
1、round函數, 對浮點數進行四捨五入。這個應該是最符合大家需要的吧。
php echo round(10/3); // 3
2、ceil函數, 進一法取整。
php echo ceil(4.3); // 5
3、floor ,捨去法取整,捨去小數部分
php echo floor(4.3); // 4 echo floor(9.999); // 9
PHP中除法運算的結果都為浮點數,即使相除的兩個變量都為整數。 為什麼
不是的,商有小數點的時候才是浮點形式,沒有小數點的時候就是int類型,只是除數和被除數都要為int類型
php中怎麼實現兩數相除時,如果是整數結果就不變,如果結果有小數點就把整數+1,
if(is_float($a/$c)) //判斷符點型
{$n=$a/$c;
$n++;
echo (int)($n); //強制轉換整型
}else{
$n=$a/$c;
echo ++$n;}
PHP計算百分比的公式函數,如何把數值裝進計算
1、按題意字面理解,不用函數,直接在單元格輸入公式“=25/336”,回車,即可返回所需比例值。 2、如果336人是一列(如A1:A336)姓名明細,25人是在另列(如B1:B336)用“派出”、“留用”、“等待”等字樣標出,則可在任意單元格輸入公式“=COUNTIF(B1:B336,”派出”)/COUNTA(A1:A336)”進行計算。 建議,將你的示例上傳,以便有的放矢。
原創文章,作者:VROZC,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/330681.html