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 相关文章推荐
在WAMP环境下搭建ZendDebugger php调试工具的方法
Jul 18 PHP
php下利用curl判断远程文件是否存在的实现代码
Oct 08 PHP
php安全配置 如何配置使其更安全
Dec 16 PHP
限制ckeditor上传图片文件大小的方法
Nov 15 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
Jun 22 PHP
ThinkPHP分页实例
Oct 15 PHP
通过php添加xml文档内容的方法
Jan 23 PHP
php上传文件常见问题总结
Feb 03 PHP
php简单防盗链实现方法
Jul 29 PHP
一波PHP中cURL库的常见用法代码示例
May 06 PHP
Laravel学习教程之request validation的编写
Oct 25 PHP
laravel框架之数据库查出来的对象实现转化为数组
Oct 23 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
Zend Framework 2.0事件管理器(The EventManager)入门教程
2014/08/11 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
PHP PDOStatement::bindParam讲解
2019/01/30 PHP
PHP利用递归函数实现无限级分类的方法
2019/03/22 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
2019/05/21 PHP
JavaScrip单线程引擎工作原理分析
2010/09/04 Javascript
Extjs中ComboBox加载并赋初值的实现方法
2012/03/22 Javascript
使用HTML+CSS+JS制作简单的网页菜单界面
2015/07/27 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
2015/08/06 Javascript
jQuery实现标题有打字效果的焦点图代码
2015/11/16 Javascript
Easyui form combobox省市区三级联动
2016/01/13 Javascript
Vue非父子组件通信详解
2017/06/12 Javascript
Vue响应式原理深入解析及注意事项
2017/12/11 Javascript
基于vue-resource jsonp跨域问题的解决方法
2018/02/03 Javascript
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
JS重学系列之聊聊new操作符
2019/03/04 Javascript
Vue代码整洁之去重方法整理
2019/08/06 Javascript
[02:42]DOTA2英雄基础教程 杰奇洛
2013/12/23 DOTA
[48:45]Ti4 循环赛第二日 NEWBEE vs EG
2014/07/11 DOTA
利用Tensorflow的队列多线程读取数据方式
2020/02/05 Python
Python Handler处理器和自定义Opener原理详解
2020/03/05 Python
SQL数据库笔试题
2016/03/08 面试题
英文版网络工程师求职信
2013/10/28 职场文书
品管员岗位职责
2013/11/10 职场文书
小学生成长感言
2014/01/30 职场文书
《小壁虎借尾巴》教学反思
2014/02/16 职场文书
党员十八大心得体会
2014/09/12 职场文书
2014年保安个人工作总结
2014/11/13 职场文书
2014年高中教师工作总结
2014/12/19 职场文书
学期个人自我总结
2015/02/13 职场文书
茶花女读书笔记
2015/06/29 职场文书
ThinkPHP5和ThinkPHP6的区别
2021/03/31 PHP
vue+spring boot实现校验码功能
2021/05/27 Vue.js
python中的mysql数据库LIKE操作符详解
2021/07/01 MySQL
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
2022/04/06 Python
《火纹风花雪月无双》预告“神秘雇佣兵” 紫发剑客
2022/04/13 其他游戏