温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

php处理浮点数、精度运算、数字处理的示例分析

发布时间:2021-05-14 14:19:20 阅读:246 作者:小新 栏目:编程语言
PHP开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章将为大家详细讲解有关php处理浮点数、精度运算、数字处理的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 

前言

1. php浮点类型数字进行运算 稍微不留神就会出现偏差 特别是金融行业,电子商户订单,商城类项目。

2. 浮点数的精度有限。尽管取决于系统,PHP 通常使用 IEEE 754 双精度格式,则由于取整而导致的最大相对误差为 1.11e-16。非基本数学运算可能会给出更大误差,并且要考虑到进行复合运算时的误差传递。永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。如果确实需要更高的精度,应该使用任意精度数学函数 或者 gmp 函数。

一 . 运算

错误

 //加
 $a 0.1$b 0.7$c intval(($a $b) * 10); echo $c."<br>"//输出:7
     //减
 $a 100$b 99.98$c $a $becho $c."<br>"//输出:0.019999999999996
     //乘
 $a 0.58$b 100$c intval($a $b); echo $c."<br>"//输出:57
     //除
 $a 0.7$b 0.1$c intval($a $b); echo $c."<br>"//输出:6

正确

1. 对于任意精度的数学,PHP 提供了支持用字符串表示的任意大小和精度的数字的二进制计算。
2. 官方手册:php.net/manual/zh/book.bc.php
3. 大家在使用前,请先确认是否已安装 bcmath。

 //加
 $a 0.1$b 0.7$c intval(bcadd($a$b1) * 10); echo $c."<br>"//输出:8
     //减
 $a 100$b 99.98$c bcsub($a$b2); echo $c."<br>"//输出:0.02
     //乘
 $a 0.58$b 100$c intval(bcmul($a$b)); echo $c."<br>"//输出:58
     //除
 $a 0.7$b 0.1$c intval(bcp($a$b)); echo $c."<br>"//输出:7
除了加减乘除,bcmath 还提供了以下方法:

1. bccomp 比较两个任意精度的数字
2. bcmod 对一个任意精度数字取模
3. bcpow 任意精度数字的乘方
4. bcpowmod 高精度数字乘方求模
5. bcscale 设置所有bc数学函数的默认小数点保留位数
6. bcsqrt 任意精度数字的二次方根

二 . 常用数值处理方案

舍去法取整(向下取整)

echo floor(5.1);
//输出:5

echo floor(8.8);
//输出:8

进一法取整(向上取整)

echo ceil(5.1);
//输出:6

echo ceil(8.8);
//输出:9

普通四舍五入法

echo round(5.1);
//输出:5

echo round(8.8);
//输出:9

//保留两位小数并且进行四舍五入
echo round(5.1232);
//输出:5.12

echo round(8.8882);
//输出:8.89

//保留两位小数并且不进行四舍五入
echo substr(round(5.123453), 0, -1);
//输出:5.12

echo substr(round(8.888883), 0, -1);
//输出:8.88

银行家舍入法

1. 四舍六入五考虑,五后非空就进一,五后为空看奇偶,五前为偶应舍去,五前为奇要进一。
2. 保留两位小数 例:

 1.2849 = 1.28 -> 四舍
 1.2866 = 1.29 -> 六入
 1.2851 = 1.29 -> 五后非空就进一
 1.2850 = 1.28 -> 五后为空看奇偶,五前为偶应舍去
 1.2750 = 1.28 -> 五后为空看奇偶,五前为奇要进一

数值格式化(千位分组)

1. 应用于金额的展示,比如我们经常会看的银行卡余额。

 echo number_format('10000.98'2'.'',')//输出:10,000.98
     echo number_format('340888999'2'.'',');
 //输出:340,888,999.00

php的框架有哪些

php的框架:1、Laravel,Laravel是一款免费并且开源的PHP应用框架。2、Phalcon,Phalcon是运行速度最快的一个PHP框架。3、Symfony,Symfony是一款为Web项目准备的PHP框架。4、Yii,Yii是一款快速、安全和专业的PHP框架。5、CodeIgniter,CodeIgniter是一款非常敏捷的开源PHP框架。6、CakePHP,CakePHP是一款老牌的PHP框架。7.Kohana,Kohana是一款敏捷但是功能强大的PHP框架。

关于“php处理浮点数、精度运算、数字处理的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI

开发者交流群×