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 相关文章推荐
第1次亲密接触PHP5(1)
Oct 09 PHP
php 日期时间处理函数小结
Dec 18 PHP
PHP得到mssql的存储过程的输出参数功能实现
Nov 23 PHP
php中DOMElement操作xml文档实例演示
Mar 26 PHP
PHP字符串的编码问题的详细介绍
Apr 27 PHP
smarty缓存用法分析
Dec 16 PHP
PHP超全局数组(Superglobals)介绍
Jul 01 PHP
yii实现使用CUploadedFile上传文件的方法
Dec 28 PHP
PHP实现linux命令tail -f
Feb 22 PHP
php实现文件上传及头像预览功能
Jan 15 PHP
PHP基于自定义类随机生成姓名的方法示例
Aug 05 PHP
laravel 实现登陆后返回登陆前的页面方法
Oct 03 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
Zend公司全球首推PHP认证
2006/10/09 PHP
php文件上传的例子及参数详解
2013/12/12 PHP
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
php中define用法实例
2015/07/30 PHP
Zend Framework入门教程之Zend_Config组件用法详解
2016/12/09 PHP
jQuery 性能优化指南 (1)
2009/05/21 Javascript
潜说js对象和数组
2011/05/25 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
2013/03/05 Javascript
jqueyr判断checkbox组的选中(示例代码)
2013/11/08 Javascript
jQuery实现冻结表格行和列
2015/04/29 Javascript
JS实现自动变换的菜单效果代码
2015/09/09 Javascript
jquery实现仿Flash的横向滑动菜单效果代码
2015/09/17 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
jQuery+CSS3实现仿花瓣网固定顶部位置带悬浮效果的导航菜单
2016/09/21 Javascript
原生JS实现跑马灯效果
2017/02/20 Javascript
详解基于 axios 的 Vue 项目 http 请求优化
2017/09/04 Javascript
nodejs实现大文件(在线视频)的读取
2020/10/16 NodeJs
Vue 路由 过渡动效 数据获取方法
2018/07/31 Javascript
微信小程序自定义toast弹窗效果的实现代码
2018/11/15 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
JS实现4位随机验证码
2020/10/19 Javascript
[59:59]EG vs IG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python抓取网页图片示例(python爬虫)
2014/04/27 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
详解 Python 读写XML文件的实例
2017/08/02 Python
CentOS7.3编译安装Python3.6.2的方法
2018/01/22 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
2018/12/12 Python
Python集中化管理平台Ansible介绍与YAML简介
2019/06/12 Python
Python 使用folium绘制leaflet地图的实现方法
2019/07/05 Python
浅谈pytorch中的BN层的注意事项
2020/06/23 Python
python中re模块知识点总结
2021/01/17 Python
英国山地公路自行车商店:Tweeks Cycles
2018/03/16 全球购物
德国旅行、体验和活动的预订平台:Watado
2019/12/04 全球购物
土耳其新趋势女装购物网站:Addax
2020/01/07 全球购物
武汉瑞得软件笔试题
2015/10/27 面试题
AJAX检测用户名是否存在的方法
2021/03/24 Javascript