PHP取余函数介绍MOD(x,y)与x%y


Posted in PHP onMay 15, 2014

取余函数 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取余运算(%)的那点事

今天我是看到百度知道中这个例子:http://zhidao.baidu.com/question/41130500.html ,才想研究下php取余的!

<?php
   $val=9.45;
   $result=$val*100;
   echo $result%100;  //44
?>

提问者奇怪,为什么上面输出的记过是44 而不是想象中的45  ,如果你这样:

echo  945%100  //45

那么结果应该是45的,这是因为php默认对变量进行取整进行取余运算的。

关于php浮点数,情况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
?>

对于大整数,php会出现溢出,可能返回负数情况(这是因为php默认使用整数取余的,所以你要把它转换成float类型(如上))可以这样做:

function Kmod($bn, $sn)
{
 return intval(fmod(floatval($bn), $sn));
}
PHP 相关文章推荐
初学者入门:细述PHP4的核心Zend
Sep 05 PHP
php入门教程 精简版
Dec 13 PHP
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
Mar 27 PHP
探讨php中header的用法详解
Jun 07 PHP
PHP捕获Fatal error错误的方法
Jun 11 PHP
PHP多线程编程之管道通信实例分析
Mar 07 PHP
php 批量查询搜狗sogou代码分享
May 17 PHP
详解PHP中的PDO类
Jul 06 PHP
PHP基于工厂模式实现的计算器实例
Jul 16 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
May 18 PHP
浅析PHP中的闭包和匿名函数
Dec 25 PHP
总结PHP代码规范、流程规范、git规范
Jun 18 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
May 15 #PHP
php实例分享之二维数组排序
May 15 #PHP
php表单请求获得数据求和示例
May 15 #PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
May 15 #PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
May 15 #PHP
ThinkPHP使用心得分享-分页类Page的用法
May 15 #PHP
php自定义函数截取汉字长度
May 15 #PHP
You might like
快速配置PHPMyAdmin方法
2008/06/05 PHP
解析PHP 5.5 新特性
2013/07/02 PHP
php新浪微博登录接口用法实例
2014/12/23 PHP
PHP中上传文件打印错误错误类型分析
2019/04/14 PHP
jquery下异步提交表单 异步跨域提交表单
2010/11/17 Javascript
2014 HTML5/CSS3热门动画特效TOP10
2014/12/07 Javascript
jQuery中attr()方法用法实例
2015/01/05 Javascript
Javascript基础教程之数组 array
2015/01/18 Javascript
JavaScript中判断两个字符串是否相等的方法
2015/07/07 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
2015/12/18 Javascript
javascript this详细介绍
2016/09/19 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
Angular.js基础学习之初始化
2017/03/10 Javascript
JS实现点击Radio动态更新table数据
2017/07/18 Javascript
bootstrap3-dialog-master模态框使用详解
2017/08/22 Javascript
Vue2.x Todo之自定义指令实现自动聚焦的方法
2019/01/08 Javascript
微信小程序3种位置API的使用方法详解
2019/08/05 Javascript
Vue实现兄弟组件间的联动效果
2020/01/21 Javascript
NodeJS模块Buffer原理及使用方法解析
2020/11/11 NodeJs
python使用xauth方式登录饭否网然后发消息
2014/04/11 Python
Python模拟登陆实现代码
2017/06/14 Python
教你学会使用Python正则表达式
2017/09/07 Python
对Tensorflow中的变量初始化函数详解
2018/07/27 Python
python tkinter界面居中显示的方法
2018/10/11 Python
python自动保存百度盘资源到百度盘中的实例代码
2019/08/26 Python
python实现门限回归方式
2020/02/29 Python
Python 在局部变量域中执行代码
2020/08/07 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
2020/12/04 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
2020/12/15 Python
法国二手MacBook销售网站:Okamac
2019/03/18 全球购物
俄罗斯美容和健康网上商店:Созвездие Красоты
2019/07/23 全球购物
电大本科自我鉴定
2014/02/05 职场文书
商场消防演习方案
2014/02/12 职场文书
给校长的一封建议书
2014/03/12 职场文书
租房协议书范例
2014/10/14 职场文书
学校施工安全责任书
2015/01/29 职场文书