когда я конвертирую строку '-0' в float, он возвращает тип float -0
пример
$x = '-0'; $y = (float)$x;
result => float -0
почему -0 – число с плавающей точкой?
Стандарт IEEE 754, в котором почти все языки программирования реализуют числа с плавающей запятой, имеет значение +0 и a -0 .
Для большинства операций +0 и -0 можно использовать взаимозаменяемо.
Тем не менее, операции с ошибкой до бесконечности, используйте +0 или -0 для перехода на + Infinity и -Infinity.
Поскольку -0 – допустимое число с плавающей запятой, имеет смысл, что отбрасывание -0 в float будет делать точно так, как вы просили — возвращение числа с плавающей запятой со значением точно -0 .
Мы все знаем, что все целые числа являются плавающими. И в PHP отсюда
Целые числа могут быть указаны в десятичной (базовая 10), шестнадцатеричной (базовая 16), восьмеричной (базовая 8) или двоичной (база 2) нотации, необязательно предшествующей знаку (- или +),
Итак, -0 – это int который обычно является float