php int max未转换为浮点数

时间:2014-01-11 18:04:11

标签: php

php documentation声明:

  

如果PHP遇到超出整数类型边界的数字,那么   将被解释为浮动。

所以我确定了整数最大值

echo PHP_INT_MAX;

并得到2147483647。

我用

测试了这个陈述

echo PHP_INT_MAX + PHP_INT_MAX;

并得到了4294967294。

因为我超过整数的最大值,这不应该是浮点数吗?

2 个答案:

答案 0 :(得分:2)

你正在回应结果,所以它已被强制转换为字符串。

这可能会有所帮助:

$result = PHP_INT_MAX;

echo gettype($result); // prints "integer"

$result2 = $result + $result;

echo gettype($result2); // prints "double"

答案 1 :(得分:0)

它实际上是 double ,它比单个精度数字(浮点数)更精确。这可以验证:

echo gettype(PHP_INT_MAX + PHP_INT_MAX);

回声:double