PHP:2258574.18不等于2058555.18 + 200019 - 0

时间:2016-06-02 06:47:27

标签: php

我正在努力用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),它就可以工作。

因此我几乎自杀了。

1 个答案:

答案 0 :(得分:0)

以精确2

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