总结PHP中数值计算的注意事项


Posted in PHP onAugust 14, 2016

一:四舍五入

1.round — 对浮点数进行四舍五入

float round ( float $val [, int $precision ] )

2:floor — 舍去法取整(向下取整)

float floor ( float $value )

3.ceil — 进一法取整(向上取整)

float ceil ( float $value )

坑点: 当数值为整数的时候 例如 11 那么floor(11) = 10  , ceil (11) =  12; 问题显而易见,所以计算的时候要格外注意这一点

解决方法 : floor(11 + 0.01);

二:整数和小数相乘除

坑点:3.5 * 100 = 300 ,就算你数学再好也没用,在php世界里这就是真理,如果用php的+-*/计算浮点数的时候,可能会遇到一些计算结果错误的问题,比如echo intval( 0.58*100 );会打印57,而不是58,这个其实是计算机底层二进制无法精确表示浮点数的一个bug,是跨语言的,我用python也遇到这个问题。所以基本上大部分语言都提供了精准计算的类库或函数库,比如php有BC高精确度函数库

解决方法:就是将整型变成浮点型 3.5 * (float)100 = 350

三:浮点数的怪异

坑点:8.50 ? 8 = 0.500000001  其实原因和2差不多

解决方法:将结果进行round(),提高精度即可

总结

以上就是PHP数据计算的注意事项的全部内容,希望本文的内容在大家在PHP中进行数据计算的时候能有所帮助。

PHP 相关文章推荐
php 获取select下拉列表框的值
May 08 PHP
php 获取全局变量的代码
Apr 21 PHP
phpmyadmin config.inc.php配置示例
Aug 27 PHP
PHP常用函数和常见疑难问题解答
Mar 05 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
Dec 29 PHP
轻松实现php文件上传功能
Feb 17 PHP
thinkPHP5.0框架自动加载机制分析
Mar 18 PHP
php实现的pdo公共类定义与用法示例
Jul 19 PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
Oct 13 PHP
ThinkPHP框架实现FTP图片上传功能示例
Apr 08 PHP
在Laravel 的 Blade 模版中实现定义变量
Oct 14 PHP
PDO实现学生管理系统
Mar 21 PHP
示例详解Laravel的注册重构
Aug 14 #PHP
PHP实现路由映射到指定控制器
Aug 13 #PHP
Yii2.0中的COOKIE和SESSION用法
Aug 12 #PHP
PHP Oauth授权和本地加密实现方法
Aug 12 #PHP
PHP 读取大文件并显示的简单实例(推荐)
Aug 12 #PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
Aug 12 #PHP
PHP请求Socket接口测试实例
Aug 12 #PHP
You might like
PHP网页游戏学习之Xnova(ogame)源码解读(九)
2014/06/24 PHP
PHP中Session ID的实现原理实例分析
2019/08/17 PHP
PHP手机号码及邮箱正则表达式实例解析
2020/07/11 PHP
js 纯数字不重复排列的另类方法
2010/07/17 Javascript
html a标签-超链接中confirm方法使用介绍
2013/01/04 Javascript
使用javascript实现页面定时跳转总结篇
2013/09/21 Javascript
jQuery.event兼容各浏览器的event详细解析
2013/12/18 Javascript
2014年最火的Node.JS后端框架推荐
2014/10/27 Javascript
JavaScript数据类型检测代码分享
2015/01/26 Javascript
js全选实现和判断是否有复选框选中的方法
2015/02/17 Javascript
jQuery插件扩展测试实例
2016/06/21 Javascript
JQuery控制DIV的选取实现方法
2016/09/18 Javascript
js实现登录验证码
2016/12/22 Javascript
Vue组件开发初探
2017/02/14 Javascript
js实现功能比较全面的全选和多选
2017/03/02 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
基于jQuery实现无缝轮播与左右点击效果
2018/05/13 jQuery
Vue开发Html5微信公众号的步骤
2019/04/11 Javascript
微信小程序实现的五星评价功能示例
2019/04/25 Javascript
vue动态渲染svg、添加点击事件的实现
2020/03/13 Javascript
基于JavaScript实现留言板功能
2020/03/16 Javascript
JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】
2020/05/01 Javascript
python中文分词,使用结巴分词对python进行分词(实例讲解)
2017/11/14 Python
python 同时运行多个程序的实例
2019/01/07 Python
python logging模块的使用总结
2019/07/09 Python
django数据关系一对多、多对多模型、自关联的建立
2019/07/24 Python
Python猴子补丁知识点总结
2020/01/05 Python
Python reversed函数及使用方法解析
2020/03/17 Python
Python判断远程服务器上Excel文件是否被人打开的方法
2020/07/13 Python
通过实例简单了解python yield使用方法
2020/08/06 Python
CSS3 box-sizing属性详解
2016/11/15 HTML / CSS
Omio英国:搜索并比较便宜的巴士、火车和飞机
2019/08/27 全球购物
Haggar官网:美国男装品牌
2020/02/16 全球购物
幼儿园评语大全
2014/04/17 职场文书
大学社团计划书
2014/05/01 职场文书
2016春季运动会开幕词
2016/03/04 职场文书