总结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程序--记数器
Oct 09 PHP
PHP 字符串操作入门教程
Dec 06 PHP
数字转英文
Dec 06 PHP
php UTF8 文件的签名问题
Oct 30 PHP
PHP操作MongoDB时的整数问题及对策说明
May 02 PHP
深入PHP magic quotes的详解
Jun 17 PHP
php中文验证码实现示例分享
Jan 12 PHP
ThinkPHP实现将SESSION存入MYSQL的方法
Jul 22 PHP
PHP从FLV文件获取视频预览图的方法
Mar 12 PHP
php中array_multisort对多维数组排序的方法
Jun 21 PHP
基于PHP实现用户注册登录功能
Oct 14 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
Nov 14 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 xml 入门学习资料
2011/01/01 PHP
PHP对文件进行加锁、解锁实例
2015/01/23 PHP
浅谈PHP中JSON数据操作
2015/07/01 PHP
实例分析基于PHP微信网页获取用户信息
2017/11/24 PHP
PHP number_format函数原理及实例解析
2020/07/14 PHP
jquery 使用简明教程
2014/03/05 Javascript
jQuery添加options点击事件并传值实例代码
2016/05/18 Javascript
JS传值出现中文参数乱码的解决方法
2016/06/30 Javascript
JavaScript探测CSS动画是否已经完成的方法
2016/08/30 Javascript
JavaScript中splice与slice的区别
2017/05/09 Javascript
vue子父组件通信的实现代码
2017/07/09 Javascript
详解React项目的服务端渲染改造(koa2+webpack3.11)
2018/03/19 Javascript
5分钟学会Vue动画效果(小结)
2018/07/21 Javascript
vue使用rem实现 移动端屏幕适配
2018/09/26 Javascript
QRCode.js二维码生成并能长按识别
2018/10/16 Javascript
vue实现微信分享功能
2018/11/28 Javascript
Request的中断和ErrorHandler实例解析
2018/02/12 Python
Django通过dwebsocket实现websocket的例子
2019/11/15 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
2020/06/11 Python
pytorch判断是否cuda 判断变量类型方式
2020/06/23 Python
CSS的pointer-events属性详细介绍(作用和注意事项)
2014/04/23 HTML / CSS
AmazeUI 手机版页面的顶部导航条Header与侧边导航栏offCanvas的示例代码
2020/08/19 HTML / CSS
英国领先的办公用品供应商:Viking
2016/08/01 全球购物
Skyscanner澳大利亚:全球领先的旅游搜索网站
2018/03/24 全球购物
eHarmony英国:全球领先的认真恋爱约会平台之一
2020/11/16 全球购物
会计电算化专业毕业生求职信范文
2013/12/10 职场文书
打架检讨书500字
2014/01/29 职场文书
劳动竞赛活动方案
2014/02/20 职场文书
《雨霖铃》教学反思
2014/02/22 职场文书
《春晓》教学反思
2014/04/20 职场文书
运动会搞笑广播稿
2014/10/14 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书
详解MySQL连接挂死的原因
2021/05/18 MySQL
Mongo服务重启异常问题的处理方法
2021/07/01 MongoDB
SQL中的三种去重方法小结
2021/11/01 SQL Server
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript