Разница между float и double в php?
у меня есть этот код
$vad = 1.1;
print gettype($vad);
var_dump($vad);
это будет выход:
double
float(1.1)
Так это double или float в php?
4 ответа:
нет никакой разницы в PHP.
float
,double
илиreal
имеют один и тот же тип данных.на уровне C все хранится как
double
.
Реальный размер по-прежнему зависит от платформы.см. руководство для получения более подробной информации:
http://www.php.net/manual/en/language.types.float.php
для PHP они одинаковы. http://www.php.net/manual/en/language.types.float.php :
числа с плавающей запятой (также известные как "поплавки", "двойники" или "действительные числа") могут быть указаны с помощью любого из следующих синтаксисов: [...]
запутанная часть заключается в том, почему gettype (который вы не должны использовать, в любом случае) возвращает "double" вместо "float". Ответ http://de2.php.net/manual/en/function.gettype.php:
"double" (по историческим причинам "double" возвращается в случае поплавка, а не просто "float")
начиная с PHP 7.0.6 на Windows, сравнивая эту команду без xdebug:
$ php -r 'var_dump(28.4);' float(28.4)
и С xdebug:
$ php -r 'var_dump(28.4);' Command line code:1: double(28.4)
обратите внимание, что это только изменяет вывод var_dump (), но не фактическое управление памятью.
это может решить некоторые проблемы, почему вы видите
double
вместоfloat
показано в var_dump на некоторых других машинах.также, С или без xdebug,
gettype
возвращаетstring(6) "double"
.