PHP精度计算问题

13. June 2018 PHP 0

问题:浮点型运算

$a = 0.1;
$b = 0.2;
dd($a + $b == 0.3);
结果为false,浮点型数值运算不精确

解决方案:

$a = 0.1;
$b = 0.2;
dd(bcadd($a, $b, 2) == 0.3); 结果为true
bcadd — 将两个高精度数字相加

bccomp — 比较两个高精度数字,返回-1, 0, 1

bcdiv — 将两个高精度数字相除

bcmod — 求高精度数字余数

bcmul — 将两个高精度数字相乘

bcpow — 求高精度数字乘方

bcsqrt — 求高精度数字平方根

bcsub — 将两个高精度数字相减