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 CLI实现简单的数据库实时监控调度
Jul 01 PHP
PHP与MySQL开发的8个技巧小结
Dec 17 PHP
PHP中如何调用webservice的实例参考
Apr 25 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
Nov 07 PHP
PHP如何通过AJAX方式实现登录功能
Nov 23 PHP
eclipse php wamp配置教程
Jun 30 PHP
php实现数组纵向转横向并过滤重复值的方法分析
May 29 PHP
PHP魔术方法之__call与__callStatic使用方法
Jul 23 PHP
PHP使用Nginx实现反向代理
Sep 20 PHP
php实现生成带二维码图片并强制下载功能
Feb 24 PHP
php中curl和soap方式请求服务超时问题的解决
Jun 11 PHP
PHP中echo与print区别点整理
Mar 09 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
SMARTY学习手记
2007/01/04 PHP
PHP 异步执行方法,模拟多线程的应用分析
2013/06/03 PHP
PHP中使用asort进行中文排序失效的问题处理
2014/08/18 PHP
PHP基于DOM创建xml文档的方法示例
2017/02/08 PHP
PHP获取文本框、密码域、按钮的值实例代码
2017/04/19 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
php进程(线程)通信基础之System V共享内存简单实例分析
2019/11/09 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
基于jQuery的仿flash的广告轮播代码
2010/11/04 Javascript
谈谈JavaScript中的函数与闭包
2013/04/14 Javascript
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
JavaScript中的some()方法使用详解
2015/06/09 Javascript
使用Javascript实现选择下拉菜单互移并排序
2016/02/23 Javascript
AngularJS表单详解及示例代码
2016/08/17 Javascript
JS实现图片延迟加载并淡入淡出效果的简单方法
2016/08/25 Javascript
文本溢出插件jquery.dotdotdot.js使用方法详解
2017/06/22 jQuery
详解webpack3编译兼容IE8的正确姿势
2017/12/21 Javascript
JS 使用 window对象的print方法实现分页打印功能
2018/05/16 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
2020/02/02 Javascript
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
2016/06/14 Python
Python中shutil模块的常用文件操作函数用法示例
2016/07/05 Python
python编程通过蒙特卡洛法计算定积分详解
2017/12/13 Python
解决python中无法自动补全代码的问题
2018/12/04 Python
python中如何实现将数据分成训练集与测试集的方法
2019/09/13 Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
2020/01/16 Python
如何一键升级Python所有包
2020/11/05 Python
python 实现ping测试延迟的两种方法
2020/12/10 Python
h5封装下拉刷新
2020/08/25 HTML / CSS
美国滑板店:Tactics
2020/11/08 全球购物
安全协议书
2014/04/23 职场文书
社区精神文明建设汇报材料
2014/08/17 职场文书
2014年学生会个人工作总结
2014/11/07 职场文书
2014年教师学期工作总结
2014/11/08 职场文书
通知的写法
2015/04/23 职场文书
HTTP中的Content-type详解
2022/01/18 HTML / CSS
mysql中如何用命令创建联合唯一索引
2022/04/20 MySQL