диапазон чисел с плавающей запятой в php. -0 является плавающим?

когда я конвертирую строку '-0' в float, она возвращает тип float -0

пример

$x = '-0';
$y = (float)$x;

результат => с плавающей запятой -0

почему -0 - число с плавающей запятой?


person Anri    schedule 12.08.2014    source источник
comment
Вы явно приводите его к (float), не так ли?   -  person Sergiu Paraschiv    schedule 12.08.2014
comment
на мой взгляд -0 не может быть значением с плавающей запятой ...   -  person Anri    schedule 12.08.2014
comment
вы бросаете его в плавание. и спрашиваю, почему он сейчас плавающий.   -  person Satish Sharma    schedule 12.08.2014
comment
Почему не может быть значением с плавающей запятой?   -  person deceze♦    schedule 12.08.2014


Ответы (2)


Стандарт IEEE 754, согласно которому почти все компьютерные языки реализуют числа с плавающей запятой, имеет как значение +0, так и значение -0.

Для большинства операций +0 и -0 могут использоваться как взаимозаменяемые.

Однако для операций, которые приводят к бесконечности ошибок, используйте +0 или -0 для перехода к + Infinity и -Infinity.

Поскольку -0 является допустимым числом с плавающей запятой, вполне логично, что преобразование -0 в число с плавающей запятой будет делать именно то, что вы просили - вернуть число с плавающей запятой со значением точно -0.

person Jeremy J Starcher    schedule 12.08.2014
comment
чем отличается -0 от +0? что будет выводиться, если (-0 == +0) ИСТИНА или ЛОЖЬ? - person Anri; 12.08.2014
comment
@Anri - 30 секунд с PHP ответят на этот вопрос быстрее, чем нужно задать его здесь. - person Jeremy J Starcher; 12.08.2014
comment
Они равны. PHP обычно использует формат двойной точности IEEE 754 - прочтите эту ветку: stackoverflow.com/questions/5095968/ - person Sergiu Paraschiv; 12.08.2014

Все мы знаем, что все целые числа являются числами с плавающей запятой. И в PHP из здесь

Целые числа могут быть указаны в десятичном (основание 10), шестнадцатеричном (основание 16), восьмеричном (основание 8) или двоичном (основание 2) виде, с опциональным предварением знака (- или +).

Итак, -0 - это int, который обычно является float

person webNeat    schedule 12.08.2014