总结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 相关文章推荐
第1次亲密接触PHP5(2)
Oct 09 PHP
php session安全问题分析
Jun 24 PHP
用PHP实现 上一篇、下一篇的代码
Sep 29 PHP
PHP callback函数使用方法和注意事项
Jan 23 PHP
php生成zip文件类实例
Apr 07 PHP
php遍历树的常用方法汇总
Jun 18 PHP
Yii2框架使用计划任务的方法
May 25 PHP
PHP最常用的正则表达式
Feb 13 PHP
PHP基于Closure类创建匿名函数的方法详解
Aug 17 PHP
Laravel利用gulp如何构建前端资源详解
Jun 03 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
Jun 14 PHP
php 中phar包的使用教程详解
Oct 26 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中英混合字符串截取函数代码
2011/07/17 PHP
Mac系统下安装PHP Xdebug
2018/03/30 PHP
php5对象复制、clone、浅复制与深复制实例详解
2019/08/14 PHP
jquery中this的使用说明
2010/09/06 Javascript
jquery控制select的text/value值为选中状态
2014/06/03 Javascript
document.forms用法示例介绍
2014/06/26 Javascript
ECMAScript6块级作用域及新变量声明(let)
2015/06/12 Javascript
基于Vuejs实现购物车功能
2016/08/02 Javascript
Angular.JS去掉访问路径URL中的#号详解
2017/03/30 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
2018/08/14 Javascript
详解Nuxt内导航栏的两种实现方式
2020/04/16 Javascript
vue-router懒加载的3种方式汇总
2021/02/28 Vue.js
python统计一个文本中重复行数的方法
2014/11/19 Python
详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
2017/06/23 Python
用python简单实现mysql数据同步到ElasticSearch的教程
2018/05/30 Python
Python中存取文件的4种不同操作
2018/07/02 Python
在Python dataframe中出生日期转化为年龄的实现方法
2018/10/20 Python
Python发展简史 Python来历
2019/05/14 Python
python 的 scapy库,实现网卡收发包的例子
2019/07/23 Python
python实现将视频按帧读取到自定义目录
2019/12/10 Python
Python处理PDF与CDF实例
2020/02/26 Python
python 实现仿微信聊天时间格式化显示的代码
2020/04/17 Python
django restframework serializer 增加自定义字段操作
2020/07/15 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码
2021/02/24 HTML / CSS
HTML5地理定位与第三方工具百度地图的应用
2016/11/17 HTML / CSS
兰蔻加拿大官方网站:Lancome加拿大
2016/08/05 全球购物
澳大利亚在线批发商:Simply Wholesale
2021/02/24 全球购物
展会邀请函范文
2014/01/26 职场文书
优秀团支部事迹材料
2014/02/08 职场文书
网吧最新创业计划书范文
2014/03/27 职场文书
2015年防灾减灾工作总结
2015/07/24 职场文书
写作技巧:优秀文案必备的3种结构
2019/08/19 职场文书
写好Python代码的几条重要技巧
2021/05/21 Python
MySQL一些常用高级SQL语句
2021/07/03 MySQL
Linux服务器离线安装 nginx的详细步骤
2022/06/16 Servers