Почему PHP, похоже, неправильно оценивает это состояние?

У меня есть следующий код на PHP, где я попытался преодолеть указанную проблему путем ввода переменных в целые числа, а также избежать ошибок с плавающей запятой, умножив все значения на 100 перед сравнением, чтобы удалить 2 десятичных знака.

Однако следующий код по-прежнему оценивает выражение true и окрашивает текст в красный цвет вместо зеленого, но когда я повторяю два значения $ eq_left и $ eq_right, они не имеют десятичной точки.

Вот код:

$eq_left = (int) ($eq_bal_CurrentAssets*100) + ($eq_bal_NonCurrentAssets*100) ; $eq_right = (int) ($eq_bal_Liabilities*100) + ($eq_bal_Taxation*100) + ($eq_bal_Equity*100) ; if ($eq_left !== $eq_right) { $color = 'red'; $diff = abs($eq_left - $eq_right); } else { $color = 'green'; } echo "<div style=\"color: $color; font-weight:bold;\">\n"; echo " " . number_format(($eq_left/100),2,".",",") . " = " . number_format(($eq_right/100),2,".",",") . "<br />\n"; if ($diff) { echo " Difference = " . number_format(($diff/100),2,".",",") . "\n"; } echo "</div>\n"; echo $eq_left . " | " . $eq_right 

Есть идеи?