Страницы

Поиск по вопросам

понедельник, 8 июля 2019 г.

Проблема с преобразованием string в int php

Есть скрипт:
$passport = '28 48 399999'; $passport = str_replace(' ','', $passport); $passport = intval($passport); var_dump($passport);
Его dump: int(2147483647)
Вопрос: почему? пробелы убрал, а в число преобразует кое-как...


Ответ

2 147 483 647 — это 231–1, максимальное целое число, помещающееся в 32 бита. Ваше число 2 848 399 999 больше, поэтому PHP решил преобразовать его к самому близкому значению, которое может быть представлено.
Похапэ искаропки не умеет в длинные целые. Должны быть математические пакеты, если вам это действительно нужно.

Комментариев нет:

Отправить комментарий