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 相关文章推荐
PHP读写文件的方法(生成HTML)
Nov 27 PHP
粗略计算在线时间,bug:ip相同
Dec 09 PHP
从一个不错的留言本弄的mysql数据库操作类
Sep 02 PHP
PHP通过header实现文本文件下载的代码
Aug 08 PHP
PHP读取txt文件的内容并赋值给数组的代码
Nov 03 PHP
探讨PHP JSON中文乱码的解决方法详解
Jun 06 PHP
(PHP实现)只使用++运算实现加法,减法,乘法,除法
Jun 27 PHP
php文件上传的两种实现方法
Apr 04 PHP
THINKPHP截取中文字符串函数实例代码
Mar 20 PHP
php7安装mongoDB扩展的方法分析
Aug 02 PHP
PHP文件后缀不强制为.php方法
Mar 31 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
Apr 04 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
php遍历数组的4种方法总结
2014/07/05 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
2016/10/08 PHP
PHP面向对象之工作单元(实例讲解)
2017/06/26 PHP
PHP strripos函数用法总结
2019/02/11 PHP
基于jQuery的试卷自动排版系统实现代码
2011/01/06 Javascript
AngularJS中取消对HTML片段转义的方法例子
2015/01/04 Javascript
代码分析jQuery四种静态方法使用
2015/07/23 Javascript
js简单判断移动端系统的方法
2016/02/25 Javascript
Node.js + Redis Sorted Set实现任务队列
2016/09/19 Javascript
webpack配置的最佳实践分享
2017/04/21 Javascript
jQuery Ajax 实现分页 kkpager插件实例代码
2017/08/10 jQuery
原生JS实现手动轮播图效果实例代码
2018/11/22 Javascript
JavaScript实现指定数量的并发限制的示例代码
2020/03/10 Javascript
uniapp与webview之间的相互传值的实现
2020/06/29 Javascript
[00:48]DOTA2国际邀请赛公开赛报名开始 扫码开启逐梦之旅
2018/06/06 DOTA
python冒泡排序算法的实现代码
2013/11/21 Python
Python MySQLdb Linux下安装笔记
2015/05/09 Python
在Python的Django框架中生成CSV文件的方法
2015/07/22 Python
Python的Socket编程过程中实现UDP端口复用的实例分享
2016/03/19 Python
Python实现按学生年龄排序的实际问题详解
2017/08/29 Python
深入理解python中函数传递参数是值传递还是引用传递
2017/11/07 Python
django用户注册、登录、注销和用户扩展的示例
2018/03/19 Python
Pyinstaller将py打包成exe的实例
2018/03/31 Python
django admin组件使用方法详解
2019/07/19 Python
css3实现波纹特效、H5实现动态波浪效果
2018/01/31 HTML / CSS
欧洲当代手工玻璃和瓷器的领先品牌:LSA International
2018/06/03 全球购物
英国最大最好的无人机商店:Drones Direct
2019/07/12 全球购物
Deichmann英国:德国鞋类零售商
2021/01/30 全球购物
英国时尚首饰品牌:Missoma
2020/06/29 全球购物
Android面试宝典
2013/08/06 面试题
数学系毕业生的自我评价
2014/01/10 职场文书
2014学校庆三八妇女节活动总结
2014/03/01 职场文书
驻村工作先进事迹
2014/08/14 职场文书
民主生活会批评与自我批评总结
2014/10/17 职场文书
2019XX公司员工考核管理制度!
2019/08/07 职场文书
win10怎么设置右下角图标不折叠?Win10设置右下角图标不折叠的方法
2022/07/15 数码科技