PHP整数取余返回负数的相关解决方法


Posted in PHP onMay 15, 2014

PHP语言虽然功能强大,但并不代表其没有缺点,在编写代码的过程中未免会遇到一些让人头痛的问题。下面我们将为大家介绍有关PHP整数取余返回负数的解决办法。

我们先来看个例子.

$res = 16244799483; 
echo $res%9999999; 
// 输出结果为 -5069794, 正确的结果应该是4801107

其实这也算上PHP一个BUG吧.最主要是PHP是个弱类型语言.他内置了机器来判断用户的类型.

但是机器毕竟是机器.也有判断出错的时候.就像上面.所以这时候我们就需要人工干预下.

所以我就想到要用下面的方法来解决PHP整数取余返回负数的问题.

$res = floatval(16244799483); 
var_dump($res % 9999999);

我们看到结果还是错误的-5069794.

但是值得注意的是返回是一个int类型的.

详细思考了一下.PHP整数取余返回负数的问题是这样处理的.

PHP取余默认为整数的.

而且当你定义$res = 16244799483;

其实就已经溢出了.所以要加上强制类型转换.变成float类型.

但是这样还不够.因为%这个取模计算还是针对整数的.

所以我们需要一个函数fmod.是针对float类型的.

所以最终PHP整数取余返回负数的解决办法为:

$res = floatval(16244799483); 
var_dump(fmod($res,9999999));

这样我们就解决了PHP整数取余返回负数这个问题.:)

PHP 相关文章推荐
PHP 实现多服务器共享 SESSION 数据
Aug 15 PHP
并发下常见的加锁及锁的PHP具体实现代码
Oct 12 PHP
pdo中使用参数化查询sql
Aug 11 PHP
一些需要禁用的PHP危险函数(disable_functions)
Feb 23 PHP
PHP数据库链接类(PDO+Access)实例分享
Dec 05 PHP
PHP对文件夹递归执行chmod命令的方法
Jun 19 PHP
PHP获取当前相对于域名目录的方法
Jun 26 PHP
php导出中文内容excel文件类实例
Jul 06 PHP
php常用图片处理类
Mar 16 PHP
PHP简单获取及判断提交来源的方法
Apr 22 PHP
PHP 匿名函数与注意事项详细介绍
Nov 26 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
PHP取余函数介绍MOD(x,y)与x%y
May 15 #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
You might like
BOOM vs RR BO5 第一场 2.14
2021/03/10 DOTA
javascript下有关dom以及xml节点访问兼容问题
2007/11/26 Javascript
js函数的引用, 关于内存的开销
2012/09/17 Javascript
关于scrollLeft,scrollTop的浏览器兼容性测试
2013/03/19 Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
2013/08/19 Javascript
jQuery选择器源码解读(七):elementMatcher函数
2015/03/31 Javascript
jQuery获取页面元素绝对与相对位置的方法
2015/06/10 Javascript
jQuery+PHP星级评分实现方法
2015/10/02 Javascript
解析javascript图片懒加载与预加载的分析总结
2016/10/27 Javascript
EditPlus 正则表达式 实战(3)
2016/12/15 Javascript
基于JavaScript实现的折半查找算法示例
2017/04/14 Javascript
IntersectionObserver实现图片懒加载的示例
2017/09/29 Javascript
利用jQuery实现简单的拖曳效果实例代码
2017/10/20 jQuery
在vue项目中安装使用Mint-UI的方法
2017/12/27 Javascript
Vue 按键修饰符处理事件的方法
2018/05/04 Javascript
React styled-components设置组件属性的方法
2018/08/07 Javascript
对angularjs框架下controller间的传值方法详解
2018/10/08 Javascript
JavaScript如何处理移动端拍摄图片旋转问题
2019/11/16 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
2020/02/24 Javascript
Python Web框架Flask下网站开发入门实例
2015/02/08 Python
python获取多线程及子线程的返回值
2017/11/15 Python
使用selenium和pyquery爬取京东商品列表过程解析
2019/08/15 Python
python爬虫开发之Request模块从安装到详细使用方法与实例全解
2020/03/09 Python
Python threading.local代码实例及原理解析
2020/03/16 Python
巴西独家产品和现场演示购物网站:Shoptime
2019/07/11 全球购物
安全协议书范本
2014/04/21 职场文书
元旦标语大全
2014/10/09 职场文书
离退休人员聘用协议书
2014/11/24 职场文书
水电工程师岗位职责
2015/02/13 职场文书
中学教师师德师风承诺书
2015/04/28 职场文书
父母教会我观后感
2015/06/17 职场文书
党风廉洁教育心得体会
2016/01/20 职场文书
详解python字符串驻留技术
2021/05/21 Python
mysql联合索引的使用规则
2021/06/23 MySQL
vue @click.native 绑定原生点击事件
2022/04/22 Vue.js
浅谈音视频 pts dts基本概念及理解
2022/08/05 数码科技