BCMath库来支持更加精确的计算
// bcscale — 设置所有bc数学函数的默认小数点保留位数
bcscale(3); // 返回布尔型 true 不指定位数,下面默认为保留小数3位
$a = '6.789';
$b = '1.2345';
// bcadd — 2个任意精度数字的加法计算
echo bcadd($a, $b); // 8.023
echo bcadd($a, $b, 6); // 8.023500
// bcsub — 2个任意精度数字的减法
echo bcsub($a, $b); // 5.554
echo bcsub($a, $b, 6); // 5.554500
// bcmul — 2个任意精度数字乘法计算
echo bcmul($a, $b); // 8.381
echo bcmul($a, $b, 6); // 8.381020
// bcdiv — 2个任意精度的数字除法计算
echo bcdiv($a, $b); // 5.499
echo bcdiv($a, $b, 6); // 5.499392
// bccomp — 比较两个任意精度的数字
echo bccomp('1', '2'); // -1
echo bccomp('1.00001', '1', 3); // 0
echo bccomp('1.00001', '1', 5); // 1
// bcmod — 对一个任意精度数字取模 $a%$b
echo bcmod(5, 3); // 2.000
echo bcmod(3, 5, 6); // 3.000000
// bcpow — 任意精度数字的乘方
echo bcpow(2.11, 3); // 9.393
echo bcpow(2.11, 3, 6); // 9.393931
// bcsqrt — 任意精度数字的二次方根
echo bcsqrt('27', 4); // 5.1961;27的二次平方根, 保留4位
// bcpowmod 先取模后乘方
echo bcmod(bcpow(2, 3), 3); // 2.000;2*2*2%3=2
echo bcpowmod(2, 3, 3); // 2.000
Windows版本的PHP具有对该扩展的内置支持。您无需加载任何其他扩展即可使用这些功能。
下一篇: php数组操作方法汇总
推荐阅读