Разница между float и double в php?

У меня есть этот код

$vad = 1.1;

print gettype($vad);

var_dump($vad);

это выведет:

double
float(1.1) 

Итак, это double или float в php?

Ответ 1

В PHP нет никакой разницы. float, double или real являются одним и тем же типом данных.

На уровне C все хранится как double.
Реальный размер по-прежнему зависит от платформы.

Подробнее см. в руководстве:
http://www.php.net/manual/en/language.types.float.php

Ответ 2

Для PHP они одинаковы. http://www.php.net/manual/en/language.types.float.php:

Числа с плавающей запятой (также называемые "float" , "doubleles" или "real numbers" ) могут быть указаны с использованием любого из следующих синтаксисов: [...]

Запутанная часть - это то, почему gettype (который вы не должны использовать, во всяком случае) возвращает "double" вместо "float" . Ответ http://de2.php.net/manual/en/function.gettype.php:

"double" (по историческим причинам "double" возвращается в случае float, а не просто "float" )

Ответ 3

Начиная с 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".