总结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中动态修改ini配置
Oct 14 PHP
php简单实现快速排序的方法
Apr 04 PHP
php实现的数字验证码及数字运算验证码
Jul 30 PHP
php实现的农历算法实例
Aug 11 PHP
64位windows系统下安装Memcache缓存
Dec 06 PHP
PHP多进程编程总结(推荐)
Jul 18 PHP
yii2 数据库读写分离配置示例
Feb 10 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
Apr 01 PHP
Laravel5框架添加自定义辅助函数的方法
Aug 01 PHP
yii2 url重写并隐藏index.php方法
Dec 10 PHP
laravel请求参数校验方法
Oct 10 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
Apr 04 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
Cannot modify header information错误解决方法
2008/10/08 PHP
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
PHP url 加密解密函数代码
2011/08/26 PHP
jQuery基于当前元素进行下一步的遍历
2014/05/20 Javascript
js检测网络是否具体连接功能的代码
2014/05/23 Javascript
JQuery.get提交页面不跳转的解决方法
2015/01/13 Javascript
深入理解JavaScript系列(17):面向对象编程之概论详细介绍
2015/03/04 Javascript
JavaScript中的函数嵌套使用
2015/06/04 Javascript
详解AngularJS中自定义指令的使用
2015/06/17 Javascript
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
jQuery为动态生成的select元素添加事件的方法
2016/08/29 Javascript
浅谈js中的引用和复制(传值和传址)
2016/09/18 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
2016/12/14 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
Angular5中状态管理的实现
2018/09/03 Javascript
Javascript三种字符串连接方式及性能比较
2019/05/28 Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
2020/07/20 Javascript
[46:44]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
python中常用的各种数据库操作模块和连接实例
2014/05/29 Python
Python如何快速实现分布式任务
2017/07/06 Python
PyQt5实现暗黑风格的计时器
2019/07/29 Python
Python hashlib加密模块常用方法解析
2019/12/18 Python
Python使用urllib模块对URL网址中的中文编码与解码实例详解
2020/02/18 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
2020/12/16 Python
加拿大时尚床上用品零售商:QE Home | Quilts Etc
2018/01/22 全球购物
教师节促销活动方案
2014/02/14 职场文书
工作鉴定评语
2014/05/04 职场文书
北京大学中文系教授推荐的10本小说
2019/08/08 职场文书
Nginx下配置Https证书详细过程
2021/04/01 Servers
redis连接被拒绝的解决方案
2021/04/12 Redis
Js类的构建与继承案例详解
2021/09/15 Javascript
Win11 Build 22000.51版本文件资源管理器“命令栏”和上下文菜单有什么新变化?
2021/11/21 数码科技
python 使用tkinter与messagebox写界面和弹窗
2022/03/20 Python
win10搭建配置ftp服务器的方法
2022/08/05 Servers
微软发布Windows 11今年最大更新22H2(附 ISO 镜像官方下载)
2022/09/23 数码科技