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