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 静态变量的初始化
Nov 15 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
Jul 03 PHP
优化PHP代码技巧的小结
Jun 02 PHP
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
Jun 05 PHP
php异常处理方法实例汇总
Jun 24 PHP
php 实现进制相互转换
Apr 07 PHP
PHP从二维数组得到N层分类树的实现代码
Oct 11 PHP
ThinkPHP中create()方法自动验证实例
Apr 26 PHP
php实现和c#一致的DES加密解密实例
Jul 24 PHP
Laravel路由研究之domain解决多域名问题的方法示例
Apr 04 PHP
tp5框架使用cookie加密算法实现登录功能示例
Feb 10 PHP
PHP如何开启Opcache功能提升程序处理效率
Apr 27 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
php写的带缓存数据功能的mysqli类
2012/09/06 PHP
APACHE的AcceptPathInfo指令使用介绍
2013/01/18 PHP
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
Laravel 5框架学习之路由、控制器和视图简介
2015/04/07 PHP
thinkphp3.x中display方法及show方法的用法实例
2016/05/19 PHP
一个选择最快的服务器转向代码
2009/04/27 Javascript
让mayfish支持mysqli数据库驱动的实现方法
2010/05/22 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
jquery如何改变html标签的样式(两种实现方法)
2013/01/16 Javascript
javascript使用onclick事件改变选中行的颜色
2013/12/30 Javascript
JS阻止冒泡事件以及默认事件发生的简单方法
2014/01/17 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
Bootstrap每天必学之简单入门
2015/11/19 Javascript
EasyUI加载完Html内容样式渲染完成后显示
2016/07/25 Javascript
vue2滚动条加载更多数据实现代码
2017/01/10 Javascript
vue-cli + sass 的正确打开方式图文详解
2017/10/27 Javascript
新手入门带你学习JavaScript引擎运行原理
2019/06/24 Javascript
Node爬取大批量文件的方法示例
2019/06/28 Javascript
Vue使用vue-recoure + http-proxy-middleware + vuex配合promise实现基本的跨域请求封装
2019/10/21 Javascript
js实现图片实时时钟
2020/01/15 Javascript
Vue 401配合Vuex防止多次弹框的案例
2020/11/11 Javascript
js实现菜单跳转效果
2020/12/11 Javascript
[19:24]DOTA2客户端使用指南 一分钟快速设置轻松超神
2013/09/24 DOTA
Python升级提示Tkinter模块找不到的解决方法
2014/08/22 Python
浅谈Python中的zip()与*zip()函数详解
2018/02/24 Python
python实现简单聊天室功能 可以私聊
2019/07/12 Python
python读取指定字节长度的文本方法
2019/08/27 Python
深入分析python 排序
2020/08/24 Python
详解Django中异步任务之django-celery
2020/11/05 Python
纽约手袋品牌:KARA
2018/03/18 全球购物
我的求职计划书
2014/01/10 职场文书
完美主义个人的自我评价
2014/02/17 职场文书
维稳承诺书
2015/01/20 职场文书
教师节班会开场白
2015/06/01 职场文书
电影建国大业观后感
2015/06/01 职场文书
致创业您:正能量激励人心句子(48条)
2019/08/15 职场文书