找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 972|回复: 0
打印 上一主题 下一主题

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

[复制链接]

2588

主题

2588

帖子

7694

积分

论坛元老

Rank: 8Rank: 8

积分
7694
跳转到指定楼层
楼主
发表于 2018-2-14 05:58:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            取余函数 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,就这些不知能否满足您的需要?
%
[U]复制代码[/U] 代码如下:
说说php取余运算(%)的那点事
今天我是看到百度知道中这个例子:http://zhidao.baidu.com/question/41130500.html ,才想研究下php取余的!
[U]复制代码[/U] 代码如下:
提问者奇怪,为什么上面输出的记过是44 而不是想象中的45  ,如果你这样:
echo  945%100  //45
那么结果应该是45的,这是因为php默认对变量进行取整进行取余运算的。
关于php浮点数,情况laruence博客文章:http://www.laruence.com/2013/03/26/2884.html
然后看看下面的php代码:
[U]复制代码[/U] 代码如下:
对于大整数,php会出现溢出,可能返回负数情况(这是因为php默认使用整数取余的,所以你要把它转换成float类型(如上))可以这样做:
[U]复制代码[/U] 代码如下:
function Kmod($bn, $sn)
{
return intval(fmod(floatval($bn), $sn));
}
            
            
您可能感兴趣的文章:
  • PHP数据类型之整数类型、浮点数的介绍
  • php的sprintf函数的用法 控制浮点数格式
  • PHP整数取余返回负数的相关解决方法
  • PHP中浮点数计算比较及取整不准确的解决方法
  • php判断两个浮点数是否相等的方法
  • PHP浮点数精度问题汇总
  • PHP中余数、取余的妙用
  • PHP中两个float(浮点数)比较实例分析
  • 简单谈谈php浮点数精确运算
  • php中让人头疼的浮点数运算分析
  • PHP实现大数(浮点数)取余的方法
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端