PHP取余函數(shù)介紹MOD(x,y)與x%y
取余函數(shù) PHP取余函數(shù) PHP兩個(gè)取余 MOD(x,y) x%y
MOD
例如:9/3,9是被除數(shù),3為除數(shù).mod函數(shù)是一個(gè)求余函數(shù),其格式為:
mod(nExp1,nExp2),即是兩個(gè)數(shù)值表達(dá)式作除法運(yùn)算后的余數(shù)。那么:兩個(gè)同號(hào)整數(shù)求余與你所知的兩個(gè)正數(shù)求余完全一樣(即兩個(gè)負(fù)整數(shù)與兩個(gè)正整數(shù)的算法一樣)。
一、兩個(gè)異號(hào)整數(shù)求余
1.函數(shù)值符號(hào)規(guī)律(余數(shù)的符號(hào))
mod(負(fù),正)=正
mod(正,負(fù))=負(fù)
結(jié)論:兩個(gè)整數(shù)求余時(shí),其值的符號(hào)為除數(shù)的符號(hào)。
2.取值規(guī)律
先將兩個(gè)整數(shù)看作是正數(shù),再作除法運(yùn)算
①能整除時(shí),其值為0
②不能整除時(shí),其值=除數(shù)×(整商+1)-被除數(shù)
例:mod(9,-8)=-7
即:9除以8的整數(shù)商為1,加1后為2;其與除數(shù)之積為18;再與被數(shù)之差為7;取除數(shù)的符號(hào)。所以值為-7。
二、兩個(gè)小數(shù)求余
取值規(guī)律:被除數(shù)-(整商×除數(shù))之后在第一位小數(shù)位進(jìn)行四舍五入。
例:mod(9,1.2)=1
即:9除1.2其整商為7;7與除數(shù)1.2之積為8.4;8.4四舍五入之后為8;被除數(shù)9與8之差為1。故結(jié)果為1。
例:mod(9,2.4)=0
即:9除2.2其整商為4;4與除數(shù)2.2這積為8.8;8.8四舍五入之后為9;被除數(shù)9與9之差為0。故結(jié)果為0。
OK,就這些不知能否滿足您的需要?
%
<?php
echo 15%4;
//結(jié)果是 3
說(shuō)說(shuō)php取余運(yùn)算(%)的那點(diǎn)事
今天我是看到百度知道中這個(gè)例子:http://zhidao.baidu.com/question/41130500.html ,才想研究下php取余的!
<?php
$val=9.45;
$result=$val*100;
echo $result%100; //44
?>
提問(wèn)者奇怪,為什么上面輸出的記過(guò)是44 而不是想象中的45 ,如果你這樣:
echo 945%100 //45
那么結(jié)果應(yīng)該是45的,這是因?yàn)閜hp默認(rèn)對(duì)變量進(jìn)行取整進(jìn)行取余運(yùn)算的。
關(guān)于php浮點(diǎn)數(shù),情況laruence博客文章:http://www.laruence.com/2013/03/26/2884.html
然后看看下面的php代碼:
<?php
/*
* name: mckee
* blog: http://www.phpddt.com
*/
$val=9.45;
$result=$val*100;
echo intval($result); //這里輸出944
echo $result%100; //這里輸出44
echo fmod(floatval($result),100); //這里輸出45
?>
對(duì)于大整數(shù),php會(huì)出現(xiàn)溢出,可能返回負(fù)數(shù)情況(這是因?yàn)閜hp默認(rèn)使用整數(shù)取余的,所以你要把它轉(zhuǎn)換成float類型(如上))可以這樣做:
function Kmod($bn, $sn)
{
return intval(fmod(floatval($bn), $sn));
}
- PHP中浮點(diǎn)數(shù)計(jì)算比較及取整不準(zhǔn)確的解決方法
- PHP中兩個(gè)float(浮點(diǎn)數(shù))比較實(shí)例分析
- PHP浮點(diǎn)數(shù)精度問(wèn)題匯總
- PHP數(shù)據(jù)類型之整數(shù)類型、浮點(diǎn)數(shù)的介紹
- 簡(jiǎn)單談?wù)刾hp浮點(diǎn)數(shù)精確運(yùn)算
- php判斷兩個(gè)浮點(diǎn)數(shù)是否相等的方法
- php的sprintf函數(shù)的用法 控制浮點(diǎn)數(shù)格式
- php中讓人頭疼的浮點(diǎn)數(shù)運(yùn)算分析
- PHP中余數(shù)、取余的妙用
- PHP整數(shù)取余返回負(fù)數(shù)的相關(guān)解決方法
- PHP實(shí)現(xiàn)大數(shù)(浮點(diǎn)數(shù))取余的方法
相關(guān)文章
php頁(yè)面函數(shù)設(shè)置超時(shí)限制的方法
這篇文章主要介紹了php頁(yè)面函數(shù)設(shè)置超時(shí)限制的方法,可通過(guò)函數(shù)控制超時(shí)限制,也可通過(guò)修改php配置文件實(shí)現(xiàn)修改超時(shí)限制,需要的朋友可以參考下2014-12-12
PHP靜態(tài)方法和靜態(tài)屬性及常量屬性的區(qū)別與介紹
今天小編就為大家分享一篇關(guān)于PHP靜態(tài)方法和靜態(tài)屬性及常量屬性的區(qū)別與介紹,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03
php intval的測(cè)試代碼發(fā)現(xiàn)問(wèn)題
測(cè)試php intval函數(shù)的代碼:2008-07-07
php事務(wù)回滾簡(jiǎn)單實(shí)現(xiàn)方法示例
這篇文章主要介紹了php事務(wù)回滾簡(jiǎn)單實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了php事務(wù)的定義、提交及回滾事務(wù)的具體操作技巧,需要的朋友可以參考下2017-03-03
php中array_slice和array_splice函數(shù)解析
本文介紹了php中array_slice和array_splice函數(shù)解析,php拆分?jǐn)?shù)組的二個(gè)函數(shù)(array_slice()、array_splice()),各舉一個(gè)例子,供大家學(xué)習(xí)參考。2016-10-10

