float和double在php中的区别?
我有这个代码
$vad = 1.1; print gettype($vad); var_dump($vad);
这将输出:
double float(1.1)
所以它是双重或浮动在PHP?
PHP没有区别。 float
, double
或real
是相同的数据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"
。