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中取得image按钮传递的name值
Oct 09 PHP
PHP 批量更新网页内容实现代码
Jan 05 PHP
Php Ctemplate引擎开发相关内容
Mar 03 PHP
php根据身份证号码计算年龄的实例代码
Jan 18 PHP
php共享内存段示例分享
Jan 20 PHP
ThinkPHP多表联合查询的常用方法
Mar 24 PHP
PHP中的一些常用函数收集
May 26 PHP
PHP版本常用的排序算法汇总
Dec 20 PHP
php compact 通过变量创建数组
Nov 15 PHP
PHP实现的简单对称加密与解密方法实例小结
Aug 28 PHP
TP5框架实现签到功能的方法分析
Apr 05 PHP
eval(cmd)与eval($cmd)的区别与联系
Jul 07 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 strtr() 函数使用说明
2008/11/21 PHP
PHP 各种排序算法实现代码
2009/08/20 PHP
在MongoDB中模拟Auto Increment的php代码
2011/03/06 PHP
php安装swoole扩展的方法
2015/03/19 PHP
php读取der格式证书乱码解决方法
2015/06/22 PHP
PHP内核探索:哈希表碰撞攻击原理
2015/07/31 PHP
PHP实现上传多文件示例代码
2017/02/20 PHP
利用谷歌地图API获取点与点的距离的js代码
2012/10/11 Javascript
Json序列化和反序列化方法解析
2013/12/19 Javascript
JS中类或对象的定义说明
2014/03/10 Javascript
用Jquery选择器计算table中的某一列某一行的合计
2014/08/13 Javascript
JavaScript设计模式之代理模式介绍
2014/12/28 Javascript
理解 JavaScript Scoping &amp; Hoisting(二)
2015/11/18 Javascript
JSON+Jquery省市区三级联动
2016/01/13 Javascript
jQuery常用知识点总结以及平时封装常用函数
2016/02/23 Javascript
JS组件Bootstrap Table使用实例分享
2016/05/30 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
2016/10/28 Javascript
详解获取jq ul第一个li定位的四种解决方案
2016/11/23 Javascript
vue.js实现单选框、复选框和下拉框示例
2017/07/18 Javascript
ES6中let 和 const 的新特性
2018/09/03 Javascript
微信小程序签到功能
2018/10/31 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
2018/11/13 Javascript
原生JS实现的自动轮播图功能详解
2018/12/28 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
Element Alert警告的具体使用方法
2020/07/27 Javascript
Python的gevent框架的入门教程
2015/04/29 Python
python检测是文件还是目录的方法
2015/07/03 Python
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
Django框架封装外部函数示例
2019/05/28 Python
详解python tkinter模块安装过程
2020/01/06 Python
Strathberry苏贝瑞中国官网:西班牙高级工匠手工打造
2020/10/19 全球购物
.net软件工程师应聘上机试题
2015/03/10 面试题
人力资源专业推荐信
2013/11/29 职场文书
教师工作自我鉴定范文
2014/09/14 职场文书
2016七夕情人节寄语
2015/12/04 职场文书
Mysql排序的特性详情
2021/11/01 MySQL