总结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作为Shell脚本语言使用
Oct 09 PHP
收藏的一个php小偷的核心程序
Apr 09 PHP
PHP学习笔记之一
Jan 17 PHP
php安全配置 如何配置使其更安全
Dec 16 PHP
解析php中curl_multi的应用
Jul 17 PHP
php实现的zip文件内容比较类
Sep 24 PHP
php实现根据词频生成tag云的方法
Apr 17 PHP
PHP实现仿百度文库,豆丁在线文档效果(word,excel,ppt转flash)
Mar 10 PHP
详解php中 === 的使用
Oct 24 PHP
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
Dec 14 PHP
Laravel中encrypt和decrypt的实现方法
Sep 24 PHP
PHP二维关联数组的遍历方式(实例讲解)
Oct 18 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操作Access类(PHP+ODBC+Access)
2007/01/02 PHP
编写漂亮的代码 - 将后台程序与前端程序分开
2008/04/23 PHP
利用php下载xls文件(自己动手写的)
2014/04/18 PHP
PHP翻页跳转功能实现方法
2020/11/30 PHP
Jquery 获得服务器控件值的方法小结
2010/05/11 Javascript
仿jQuery的siblings效果的js代码
2011/08/09 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
js获取当月最后一天实例代码
2013/11/19 Javascript
弹出最简单的模式化遮罩层的js代码
2013/12/04 Javascript
原生javaScript实现图片延时加载的方法
2014/12/22 Javascript
用canvas 实现个图片三角化(LOW POLY)效果
2016/02/18 Javascript
基于jQuery实现仿微博发布框字数提示
2016/07/27 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
2016/12/14 Javascript
Vue中组件之间数据的传递的示例代码
2017/09/08 Javascript
JS库 Highlightjs 添加代码行号的实现代码
2017/09/13 Javascript
微信小程序中使用ECharts 异步加载数据的方法
2018/06/27 Javascript
Bootstrap Table实现定时刷新数据的方法
2018/08/13 Javascript
jquery.pagination.js分页使用教程
2018/10/23 jQuery
详解Vue、element-ui、axios实现省市区三级联动
2019/05/07 Javascript
Nodejs使用archiver-zip-encrypted库加密压缩文件时报错(解决方案)
2019/11/18 NodeJs
[03:28]2014DOTA2国际邀请赛 走近EG战队天才中单Arteezy
2014/07/12 DOTA
[03:33]TI9战队采访 - Infamous
2019/08/20 DOTA
Python中常用信号signal类型实例
2018/01/25 Python
在Pycharm中设置默认自动换行的方法
2019/01/16 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
python 操作excel表格的方法
2020/12/05 Python
利用纯CSS3实现动态的自行车特效源码
2017/01/20 HTML / CSS
原装进口全世界:天猫国际
2016/08/03 全球购物
美国最大的宠物药店:1-800-PetMeds
2016/10/02 全球购物
电气自动化大学生求职信
2013/10/16 职场文书
法律专业大学生职业生涯规划书:向目标一步步迈进
2014/09/22 职场文书
2015年电话客服工作总结
2015/05/18 职场文书
如何用 Python 子进程关闭 Excel 自动化中的弹窗
2021/05/07 Python
pytorch 如何使用batch训练lstm网络
2021/05/28 Python
Python中基础数据类型 set集合知识点总结
2021/08/02 Python
java协程框架quasar和kotlin中的协程对比分析
2022/02/24 Java/Android