float和double在php中的区别?

我有这个代码

$vad = 1.1; print gettype($vad); var_dump($vad); 

这将输出:

 double float(1.1) 

所以它是双重或浮动在PHP?

PHP没有区别。 floatdoublereal是相同的数据types。

在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的情况下返回的,而不是简单的“float”)

从Windows上的PHP 7.0.6开始,比较这个没有启用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()输出,而不会改变实际的内存pipe理。

这可能会解决一些问题,为什么你在其他机器上看到var_dump中显示double而不是float

另外,有或没有xdebug, gettype仍然返回string(6) "double"