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的access操作类
Apr 09 PHP
php数组函数序列之array_sum() - 计算数组元素值之和
Oct 29 PHP
MySQL的FIND_IN_SET函数使用方法分享
Mar 27 PHP
深入解析yii权限分级式访问控制的实现(非RBAC法)
Jun 13 PHP
php二维数组用键名分组相加实例函数
Nov 06 PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
Jun 12 PHP
php获取URL中带#号等特殊符号参数的解决方法
Sep 02 PHP
为PHP5.4开启Zend OPCode缓存
Dec 26 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
Jan 22 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
Jan 12 PHP
PHP实现的简单AES加密解密算法实例
May 29 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 29 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
福利彩票幸运号码自动生成器
2006/10/09 PHP
PHP 页面跳转到另一个页面的多种方法方法总结
2009/07/07 PHP
批量修改RAR文件注释的php代码
2010/11/20 PHP
php中的strpos使用示例
2014/02/27 PHP
PHP的switch判断语句的“高级”用法详解
2014/10/01 PHP
php调用shell的方法
2014/11/05 PHP
解决laravel 5.1报错:No supported encrypter found的办法
2017/06/07 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
jquery UI 1.72 之datepicker
2009/12/29 Javascript
javascript cookies 设置、读取、删除实例代码
2010/04/12 Javascript
JavaScript高级程序设计 阅读笔记(七) ECMAScript中的语句
2012/02/27 Javascript
JQuery 中几个类选择器的简单使用介绍
2013/03/14 Javascript
JQuery 常用方法和事件详细介绍
2013/04/18 Javascript
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
JavaScript实现数组在指定位置插入若干元素的方法
2015/04/06 Javascript
js的flv视频播放器插件使用方法
2015/06/23 Javascript
js鼠标点击图片切换效果实现代码
2015/11/19 Javascript
第二次聊一聊JS require.js模块化工具的基础知识
2016/04/17 Javascript
js利用appendChild对标签进行排序的实现方法
2016/10/16 Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
2016/11/18 Javascript
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
ES6下子组件调用父组件的方法(推荐)
2018/02/23 Javascript
vue  自定义组件实现通讯录功能
2018/09/30 Javascript
如何为vuex实现带参数的 getter和state.commit
2019/01/04 Javascript
vuex管理状态 刷新页面保持不被清空的解决方案
2019/11/11 Javascript
[01:18]一目了然!DOTA2DotA快捷操作对比第一弹
2014/07/01 DOTA
[00:39]DOTA2上海特级锦标赛 Liquid战队宣传片
2016/03/04 DOTA
python爬虫入门教程之点点美女图片爬虫代码分享
2014/09/02 Python
Python程序退出方式小结
2017/12/09 Python
详解用TensorFlow实现逻辑回归算法
2018/05/02 Python
django-rest-framework解析请求参数过程详解
2019/07/18 Python
Python 发送邮件方法总结
2020/08/10 Python
完美解决Pycharm中matplotlib画图中文乱码问题
2021/01/11 Python
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
Hotels.com南非:酒店预订
2017/11/02 全球购物
2015年小学语文工作总结
2015/05/25 职场文书