Функция выдает разный результат в зависимости от места запуска 0_0

Статус
В этой теме нельзя размещать новые ответы.
Для просмотра ссылки Войди или Зарегистрируйся
тоже BN2FHBGu_
Забавно, на том сайте действительно в цикле присутствует float :eek:
Код:
integer: 63
double: 2.1911418850131E+16
integer: -32
double: 3.4236591953329E+14
integer: 46
double: 5349467492707
integer: -29
double: 83585429574
integer: 6
double: 1306022337
integer: 1
double: 20406599
integer: 7
double: 318853
integer: 5
double: 4982
integer: 54
double: 77
integer: 13
double: 1
integer: 1
double: 0
BN2FHBGu_
 
Походу я нашел причину.
Код:
echo PHP_INT_MAX;
Собственно там, где id > PHP_INT_MAX, работать правильно не будет :eek:
Собственно где нашел инфу - Для просмотра ссылки Войди или Зарегистрируйся
У кого-то 32-х битный PHP стоит :oops:
 
В том то и дело, что я отдебажил и видел float собственными глазами)
Вот такую: $id = 2.1911418850131E+16
Видимо по это причине (цитаты из мануала Для просмотра ссылки Войди или Зарегистрируйся:(
Если PHP обнаружил, что число превышает размер типа Для просмотра ссылки Войди или Зарегистрируйся, он будет интерпретировать его в качестве Для просмотра ссылки Войди или Зарегистрируйся. Аналогично, если результат операции лежит за границами типа Для просмотра ссылки Войди или Зарегистрируйся, он будет преобразован в Для просмотра ссылки Войди или Зарегистрируйся.
А так же:
Если число с плавающей точкой превышает размеры Для просмотра ссылки Войди или Зарегистрируйся (обычно +/- 2.15e+9 = 2^31 на 32-битных системах и +/- 9.22e+18 = 2^63 на 64-битных системах, кроме Windows), результат будет неопределенным, так как Для просмотра ссылки Войди или Зарегистрируйся не имеет достаточной точности, чтобы вернуть верный результат. В этом случае не будет выведено ни предупреждения, ни даже замечания!
 
Да, система у меня 64-битная, но php был подключен 32-битный. Каюсь не посмотрел (
Дело все-таки в битности систем, как мы и предположили в самом начале.
 
Да, система у меня 64-битная, но php был подключен 32-битный. Каюсь не посмотрел (
Дело все-таки в битности систем, как мы и предположили в самом начале.
А если быть точнее, то в битности софта, в данном случае PHP :D:glob:
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху