PHP给我错误的结果加上浮点数

时间:2019-05-27 15:52:26

标签: php

我有此代码:

<?php

$a = 991.3;

$float = floor($a);
$float = $a - $float;

echo $float;

它给了我这个结果:

0.29999999999995

为什么不0.3?以及如何获得0.3而不是0.29999999999995

2 个答案:

答案 0 :(得分:1)

这是因为PHP的浮点数精度不精确。 php manual entry about floating point number中对此进行了警告。

如果要对不同的运算进行数学精度计算,则必须使用PHP的bcmath扩展名。我敢打赌,它必须已经在您的PHP安装中进行了编译,但是如果没有,则可以随时通过Google搜索如何安装它。 :)

These are the functions要使用。

答案 1 :(得分:1)

您可以使用此PHP functions进行精度数字运算。

<?php

$a = '1.234';
$b = '5';

echo bcsub($a, $b);     // -3
echo bcsub($a, $b, 4);  // -3.7660

?>