php 取余的两个问题

正在做php前端开发,用到了php中的取余函数,发现两个情况,写出来,大家一起注意下。

1、发现mod,MOD都不行,才意识到有所改变,查找资料后发现改为了fmod(x,y)

2、在使用%取余时,发现数据不正确,本来使用的是int型数据13261711837 %1000,结果确实5504,查找资料后发现对于大整数,php会出现溢出,甚至可能返回负数情况(这是因为php默认使用整数取余的,所以你要把它转换成float类型。转化为float型后,问题解决

<?php
<span style="white-space:pre">	</span>echo " <1> . % ";
<span style="white-space:pre">	</span>echo 100.4567%30;   // 10
<span style="white-space:pre">	</span>echo 3.45678%2;     // 1
<span style="white-space:pre">	</span>echo 10.98765%4;    // 2
<span style="white-space:pre">	</span>echo 10.98765%2;    // 0
<span style="font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; text-indent: 2em;">       echo " <2> . fmod<函数>";</span>
    echo fmod(100.45678,30);   //10.45678
<span style="white-space:pre">	</span>echo fmod(3.45678,2);      //1.45678
<span style="white-space:pre">	</span>echo fmod(10.98765,4);     //2.98765
<span style="white-space:pre">	</span>echo fmod(10.98765,2);     //0.98765
?>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值