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的范围解析操作符(::)的含义分析说明
Jul 03 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
Jun 02 PHP
php实现memcache缓存示例讲解
Dec 04 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
Sep 23 PHP
php递归json类实例
Dec 02 PHP
Zend Studio使用技巧两则
Apr 01 PHP
Yii隐藏URL中index.php的方法
Jul 12 PHP
php版微信数据统计接口用法示例
Oct 12 PHP
PHP实现的简单排列组合算法应用示例
Jun 20 PHP
PHP 实现页面静态化的几种方法
Jul 23 PHP
[原创]PHP正则匹配中英文、数字及下划线的方法【用户名验证】
Aug 01 PHP
php使用curl伪造来源ip和refer的方法示例
May 08 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 获取一个月第一天与最后一天的代码
2010/05/16 PHP
常见的PHP五种设计模式小结
2011/03/23 PHP
PHP的博客ping服务代码
2012/02/04 PHP
smarty基础之拼接字符串的详解
2013/06/18 PHP
PHP实现懒加载的方法
2015/03/07 PHP
php字符串的替换,分割和连接方法
2016/05/23 PHP
PHP基于curl后台远程登录正方教务系统的方法
2016/10/14 PHP
php模拟post提交请求调用接口示例解析
2020/08/07 PHP
jQuery UI Autocomplete 1.8.16 中文输入修正代码
2012/04/16 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
2014/01/08 Javascript
jQuery插件开发的两种方法及$.fn.extend的详解
2014/01/16 Javascript
JS自定义对象实现Java中Map对象功能的方法
2015/01/20 Javascript
jqTransform美化表单
2015/10/10 Javascript
jquery 动态合并单元格的实现方法
2016/08/26 Javascript
解析微信JS-SDK配置授权,实现分享接口
2016/12/09 Javascript
Vue.js实战之Vuex的入门教程
2017/04/01 Javascript
nodejs服务搭建教程 nodejs访问本地站点文件
2017/04/07 NodeJs
Vue路由钩子之afterEach beforeEach的区别详解
2018/07/15 Javascript
vue excel上传预览和table内容下载到excel文件中
2019/12/10 Javascript
element-ui树形控件后台返回的数据+生成组织树的工具类
2020/03/05 Javascript
Python3 入门教程 简单但比较不错
2009/11/29 Python
Python实现选择排序
2017/06/04 Python
Numpy数组转置的两种实现方法
2018/04/17 Python
如何使用python爬虫爬取要登陆的网站
2019/07/12 Python
Django在pycharm下修改默认启动端口的方法
2019/07/26 Python
Python 3.8正式发布,来尝鲜这些新特性吧
2019/10/15 Python
在Python中通过threshold创建mask方式
2020/02/19 Python
Django3中的自定义用户模型实例详解
2020/08/23 Python
python线程优先级队列知识点总结
2021/02/28 Python
网易微博Web App用HTML5开发的过程介绍
2012/06/13 HTML / CSS
1688平价精选商城:阿里集团旗下,工厂出厂价格直销
2017/04/24 全球购物
FORZIERI福喜利中国官网:奢侈品购物梦工厂
2019/05/03 全球购物
伦敦鲜花递送:Flower Station
2021/02/03 全球购物
Linux常见面试题
2016/10/04 面试题
洗车工岗位职责
2014/03/15 职场文书
道德之星事迹材料
2014/05/03 职场文书