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中的一个中文字符串截取函数
Feb 14 PHP
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
Aug 07 PHP
php网页标题中文乱码的有效解决方法
Mar 05 PHP
ThinkPHP缓存方法S()概述
Jun 13 PHP
30个php操作redis常用方法代码例子
Jul 05 PHP
PHP获取QQ达人QQ信息的方法
Mar 05 PHP
PHP实现基于文本的摩斯电码生成器
Jan 11 PHP
php使用curl并发减少后端访问时间的方法分析
May 12 PHP
php + nginx项目中的权限详解
May 23 PHP
PHP字典树(Trie树)定义与实现方法示例
Oct 09 PHP
PHP实现的分解质因数操作示例
Aug 01 PHP
PHP使用ajax的post方式下载excel文件简单示例
Aug 06 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
Laravel学习教程之路由模块
2017/08/18 PHP
DEFER怎么用?
2006/07/01 Javascript
CSS(js)限制页面显示的文本字符长度
2012/12/27 Javascript
JS特殊函数(Function()构造函数、函数直接量)区别介绍
2013/05/19 Javascript
js图片预加载示例
2014/04/30 Javascript
jQuery插件pagination实现分页特效
2015/04/12 Javascript
浅谈Node.js中的定时器
2015/06/18 Javascript
JavaScript中Boolean对象的属性解析
2015/10/21 Javascript
用jquery的attr方法实现图片切换效果
2017/02/05 Javascript
Bootstrap按钮组简单实现代码
2017/03/06 Javascript
vue.js如何更改默认端口号8080为指定端口的方法
2017/07/14 Javascript
关于Vue实现组件信息的缓存问题
2017/08/23 Javascript
详解mpvue scroll-view自动回弹bug解决方案
2018/10/01 Javascript
Vue中的情侣属性$dispatch和$broadcast详解
2019/03/07 Javascript
你准备好迎接vue3.0了吗
2020/04/28 Javascript
Vue项目开发常见问题和解决方案总结
2020/09/11 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
2020/12/10 Vue.js
python自动翻译实现方法
2016/05/28 Python
Python爬虫爬取糗事百科段子实例分享
2020/07/31 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
如何使用PyCharm引入需要使用的包的方法
2020/09/22 Python
CSS3 Flexbox中flex-shrink属性的用法示例介绍
2013/12/30 HTML / CSS
canvas实现圆形进度条动画的示例代码
2017/12/26 HTML / CSS
SNIDEL官网:日本VIVI杂志人气少女第一品牌
2020/03/12 全球购物
应聘收银员个人的求职信
2013/11/30 职场文书
材料加工工程求职信
2014/02/19 职场文书
大学新闻系自荐书
2014/05/31 职场文书
优秀毕业生自荐信
2014/06/10 职场文书
辞旧迎新演讲稿
2014/09/15 职场文书
政府会议通知范文
2015/04/15 职场文书
董事长致辞
2015/07/29 职场文书
2016银行求职自荐信
2016/01/28 职场文书
Python下opencv使用hough变换检测直线与圆
2021/06/18 Python
Python 数据可视化之Matplotlib详解
2021/11/02 Python
Java十分钟精通进阶适配器模式
2022/04/06 Java/Android
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
2022/04/09 Javascript