PHP函数库之BC高精确度函数库www.9lyp.com
用过php计算的朋友知道直接用加减乘除来计算偶尔会出现多位小数的误差。587505c
可以用以下高精度计算函数来解决这个问题。ae7
855ca
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";// 比较 1855ca
855ca
如果需要四舍五入,请看这篇《解决php计算bc函数不能四舍五入的办法》587505c
510703d4