2014-01-11 2 views
0

РНР documentation состояния:PHP INT Макс не преобразуется в число с плавающей точкой

Если PHP встречает число, превышающее пределы целого типа, оно будет интерпретироваться как поплавок вместо.

Поэтому я определил размер целых максимального

echo PHP_INT_MAX;

и получил 2147483647.

Я проверил это утверждение с

echo PHP_INT_MAX + PHP_INT_MAX;

и получил 4294967294.

Не должно ли это быть поплавком, так как я вышел за пределы max в целых числах?

+2

Вы должны быть немного более конкретную информацию о вашей платформе, PHP версии и т.д. Для меня этот кусок кода возвращает '1.844674407371E + 19' (PHP 5.4.17, OSX 10.9, 64-bit) – akirk

ответ

2

Вы эхо-результат, так что он уже отбрасывается в строку.

Это может помочь:

$result = PHP_INT_MAX; 

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

$result2 = $result + $result; 

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

Это на самом деле в двойной, который является более точным, чем число одинарной точности (поплавком). Это может быть проверено:

echo gettype(PHP_INT_MAX + PHP_INT_MAX); 

Echoes: double

+0

Почему для константы целочисленного языка всегда должно быть 'double'? – Bojangles

Смежные вопросы