此文章发布于43个月前,部分信息可能已经过时,请自行斟酌确认
PHP计算数据的浮点精度问题
我们在使用PHP的 +
, -
, *
, /
计算浮点数据时,经常会遇到计算结果错误的问题,举例如下:
<?php
echo intval(0.58 * 100); //输出57
?>
解决办法
<?php
echo bcmul(0.58, 100); //输出58
?>
PHP为了处理此问题提供了BC高精度函数库
。
这里给大家都介绍一下这些PHP的BC高精度函数
,方便记录大家使用!
bcadd
— 将两个高精度数字相加bcsub
— 将两个高精度数字相减bcmul
— 将两个高精度数字相乘bcdiv
— 将两个高精度数字相除bccomp
— 比较两个高精度数字,返回-1, 0, 1bcmod
— 求高精度数字余数bcpow
— 求高精度数字乘方bcpowmod
— 求高精度数字乘方求模,数论里非常常用bcscale
— 配置默认小数点位数,相当于就是Linux bc中的”scale=”bcsqrt
— 求高精度数字平方根
最后修改:2020 年 02 月 26 日 02 : 30 AM
© 允许规范转载