总结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中将网页导出为Word文档的代码
May 25 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
Oct 30 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
Nov 28 PHP
smarty模板引擎之分配数据类型
Mar 30 PHP
php检测文本的编码
Jul 26 PHP
PHP经典面试题之设计模式(经常遇到)
Oct 15 PHP
浅析Yii2 GridView实现下拉搜索教程
Apr 22 PHP
php+ajax+json 详解及实例代码
Dec 12 PHP
微信公众号实现会员卡领取功能
Jun 08 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
Sep 09 PHP
php实现微信小程序授权登录功能(实现流程)
Nov 13 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
Jan 22 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
收听困难?教您超简便短波广播抗干扰方法!
2021/03/01 无线电
linux系统上支持php的 iconv()函数的方法
2011/10/01 PHP
PHP输出两个数字中间有多少个回文数的方法
2015/03/23 PHP
php cli模式下获取参数的方法
2017/05/05 PHP
PHP Web表单生成器案例分析
2020/06/02 PHP
js wmp操作代码小结(音乐连播功能)
2008/11/08 Javascript
IE iframe的onload方法分析小结
2010/01/07 Javascript
[原创]js获取数组任意个不重复的随机数组元素
2010/03/15 Javascript
JavaScript游戏之是男人就下100层代码打包
2010/11/08 Javascript
jQuery实现图片信息的浮动显示实例代码
2013/08/28 Javascript
跨域传值即主页面与iframe之间互相传值
2013/12/09 Javascript
javascript使用定时函数实现跳转到某个页面
2013/12/25 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
2015/02/28 Javascript
wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析
2015/05/06 Javascript
Css3制作变形与动画效果
2015/07/24 Javascript
jquery单击事件和双击事件冲突解决方案
2016/03/02 Javascript
Node.js通过身份证号验证年龄、出生日期与性别方法示例
2017/03/09 Javascript
jQuery简单绑定单个事件的方法示例
2017/06/10 jQuery
Vue组件之Tooltip的示例代码
2017/10/18 Javascript
node.js的exports、module.exports与ES6的export、export default深入详解
2017/10/26 Javascript
通过jquery.cookie.js实现记住用户名、密码登录功能
2018/06/20 jQuery
详解js删除数组中的指定元素
2018/10/31 Javascript
js数组的基本使用总结
2021/01/18 Javascript
对numpy中数组元素的统一赋值实例
2018/04/04 Python
在python中利用GDAL对tif文件进行读写的方法
2018/11/29 Python
Python发送邮件测试报告操作实例详解
2018/12/08 Python
Python中全局变量和局部变量的理解与区别
2021/02/07 Python
sklearn中的交叉验证的实现(Cross-Validation)
2021/02/22 Python
Monki官网:斯堪的纳维亚的独立时尚品牌
2020/11/09 全球购物
C语言开发工程师测试题
2016/12/20 面试题
电气工程和自动化自荐信范文
2013/12/25 职场文书
2014年元旦感言
2014/03/06 职场文书
诚信的演讲稿范文
2014/05/12 职场文书
工商干部先进事迹
2014/05/14 职场文书
2014小学一年级班主任工作总结
2014/12/05 职场文书
Python中的datetime包与time包包和模块详情
2022/02/28 Python