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 shell命令合并图片的代码
Jun 23 PHP
PHP判断文件是否存在、是否可读、目录是否存在的代码
Oct 03 PHP
PHP flock 文件锁详细介绍
Dec 29 PHP
php解析url的三个示例
Jan 20 PHP
PHP URL参数获取方式的四种例子
Feb 28 PHP
PHP中的switch语句的用法实例详解
Oct 21 PHP
php采集神器cURL使用方法详解
Feb 19 PHP
php格式化时间戳
Dec 17 PHP
自制PHP框架之路由与控制器
May 07 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
Sep 08 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
Oct 12 PHP
Thinkphp 框架扩展之类库扩展操作详解
Apr 23 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邮件发送的两种方式
2020/04/28 PHP
ThinkPHP项目分组配置方法分析
2016/03/23 PHP
php事件驱动化设计详解
2016/11/10 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
学习js所必须要知道的一些
2007/03/07 Javascript
分享一个asp.net pager分页控件
2012/01/04 Javascript
js hover 定时器(实例代码)
2013/11/12 Javascript
JavaScript返回网页中超链接数量的方法
2015/04/03 Javascript
JavaScript判断DIV内容是否为空的方法
2016/01/29 Javascript
纯css下拉菜单 无需js
2016/08/15 Javascript
JavaScript调试的多个必备小Tips
2017/01/15 Javascript
AngularJS实现的回到顶部指令功能实例
2017/05/17 Javascript
JS实现仿UC浏览器前进后退效果的实例代码
2017/07/17 Javascript
浅谈Vue组件及组件的注册方法
2018/08/24 Javascript
JS实现方形抽奖效果
2018/08/27 Javascript
webpack项目使用eslint建立代码规范实现
2019/05/16 Javascript
python脚本开机自启的实现方法
2019/06/28 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
python解析yaml文件过程详解
2019/08/30 Python
基于Pytorch SSD模型分析
2020/02/18 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
2020/11/17 Python
CSS3属性box-shadow使用指南
2014/12/09 HTML / CSS
HTML5 Canvas玩转酷炫大波浪进度图效果实例(附demo)
2016/12/14 HTML / CSS
好人好事事迹材料
2014/02/12 职场文书
cf战队收人广告词
2014/03/14 职场文书
党性心得体会
2014/09/03 职场文书
就业协议书
2014/09/12 职场文书
老人节标语大全
2014/10/08 职场文书
2014年数学教师工作总结
2014/12/03 职场文书
2014年个人工作总结模板
2014/12/15 职场文书
实习单位指导教师评语
2014/12/30 职场文书
2015年学校精神文明工作总结
2015/05/27 职场文书
Nginx下配置Https证书详细过程
2021/04/01 Servers
Python中的套接字编程是什么?
2021/06/21 Python
Android开发手册Chip监听及ChipGroup监听
2022/06/10 Java/Android
mysql sql常用语句大全
2022/06/21 MySQL