PHP函数库之BC高精确度函数库,解决小数问题

编辑整理:
久良优品老秦
热度:
2195

用过php计算的朋友知道直接用加减乘除来计算偶尔会出现多位小数的误差。

PHP函数库之BC高精确度函数库www.9lyp.com

用过php计算的朋友知道直接用加减乘除来计算偶尔会出现多位小数的误差。

1de1c

可以用以下高精度计算函数来解决这个问题。b7fb4949


b7fb4949

    bcadd — 将两个高精度数字相加
    bccomp — 比较两个高精度数字,返回-1, 0, 1
    bcdiv — 将两个高精度数字相除。参数左/参数右。
    bcmod — 求高精度数字余数
    bcmul — 将两个高精度数字相乘
    bcpow — 求高精度数字乘方
    bcpowmod — 求高精度数字乘方求模,数论里非常常用
    bcscale — 配置默认小数点位数,相当于就是Linux bc中的”scale=”
    bcsqrt — 求高精度数字平方根
    bcsub — 将两个高精度数字相减,参数左-参数右。
=====================
echo math_add('3.445','3.444')."\n"; // 加 6.88
echo math_sub('3.445','3.444')."\n"; // 减 0.00
echo math_mul('3.445','3.444')."\n"; // 乘 11.86
echo math_div('3.445','3.444')."\n"; // 除 1.00
echo math_mod('3.445','3.444')."\n"; // 取模 0
echo math_comp('3.445','3.444')."\n";// 比较 1
echo math_add('3.445','3.444','3')."\n"; // 加 6.889
echo math_sub('3.445','3.444','3')."\n"; // 减 0.001
echo math_mul('3.445','3.444','3')."\n"; // 乘 11.864
echo math_div('3.445','3.444','3')."\n"; // 除 1.000
echo math_mod('3.445','3.444')."\n"; // 取模 0

echo math_comp('3.445','3.444')."\n";// 比较 17ca9f


b49b

如果需要四舍五入,请看这篇《解决php计算bc函数不能四舍五入的办法》

1de1c


www.9lyp.comb7fb4949