PHP : 2258574.18 not equals to 2058555.18 + 200019 - 0



我正在努力用PHP制作会计软件。我从浮点精度中得到了一些错误。

这是示例不起作用的代码:

$a = (float) 2258574.18;
$b = (float) 2058555.18;
$c = 200019;
$d = 0;
($b+$c-$d == $a ) ? $x = "equals" : $x = "!equals"; 
echo $x;

输出:

!等于

我正在使用round() abs()但没有解决。如果我只将其转换为int (int),它就可以工作。

我差点因此自杀。

尝试精确round() 2

$e = $b+$c-$d;   
(round($e, 2) == round($a, 2) ) ? $x = "equals" : $x = "!equals"; 
echo $x;

最新更新