Странное добавление числовых строк в PHP

Я складываю две числовые строки $ a и $ b, а затем сравниваю результат с другой числовой строкой $ c. Все три числа хранятся в виде строк и преобразуются в числа с плавающей точкой PHP на этапе сравнения.

По какой-то причине тест $ a + $ b == $ c не оценивается как истинный, хотя и должен.

Вы можете воссоздать проблему с помощью этого скрипта:

<?php
$a = "-111.11";
$b = "-22.22";
$c = "-133.33";

echo '$a is '.$a."\n";
echo '$b is '.$b."\n";
echo '$c is '.$c."\n";
echo '$a + $b is '.($a+$b). "\n";

if ($a + $b == $c) {
    echo 'a + b equals c'."\n";
} else {
    echo 'a + b does not equal c'."\n"; 
}
?>

Странно, если я немного изменю значения так, чтобы $ a = -111.11, $ b = -22.23 и $ c = -133.34, это работало, как и ожидалось.

Я что-то упускаю очевидное, или это ошибка в PHP?

Ответы на вопрос(3)

Ваш ответ на вопрос