когда я конвертирую строку '-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