PHP. Руководство по PHP. 2005
ЦелыеПред.
Целые
Целое это число из множества Z = {..., -2, -1, 0, 1, 2, ...}.
Смотрите также: Целые произвольной длины / GMP, Числа с плавающей точкой и Произвольная точность / BCMath
Синтаксис
Целые могут быть указаны в десятичной, шестнадцатеричной или восьмеричной системе счисления, по желанию с предшествующим знаком (- или +).
Если вы используете восьмеричную систему счисления, вы должны предварить число 0 (нулем), для использования шестнадцатеричной системы нужно поставить перед числом 0x.
Формально возможная структура целых такова:
десятичные : [1-9][0-9]* | 0 |
Размер целого зависит от платформы, хотя, как правило, максимальное значение около двух миллиардов (это 32-битное знаковое). PHP не поддерживает беззнаковые целые.
Превышение размера целого
Если вы определите число, превышающее пределы целого типа, оно будет интерпретировано как число с плавающей точкой. Также, если вы используете оператор, результатом работы которого будет число, превышающее пределы целого, вместо него будет возвращено число с плавающей точкой.
|
Внимание |
- К сожалению, в PHP была ошибка, так что это не всегда верно работает, когда используются отрицательные числа. Например: когда вы умножаете -50000 * $million, результатом будет -429496728. Однако, если оба операнда положительны, проблем не возникает.
Эта ошибка устранена в PHP4.1.0. |
в PHP не существует оператора деления целых. Результатом 1/2 будет число с плавающей точкой 0.5. Вы можете привести значение к целому, что всегда округляет его в меньшую сторону, либо использовать функцию round().
|
Преобразование в целое
Для несомненного преобразования значения в целое используйте приведение типа (int) или (integer). Однако в большинстве случаев вам нет необходимости использовать приведение типа, поскольку значение будет автоматически преобразовано, если оператор, функция или управляющая конструкция требует целый аргумент. Вы также можете преобразовать значение в целое при помощи функции intval().
Смотрите также Манипуляции с типами.
Из булева типа
FALSE преобразуется в 0 (ноль), а TRUE - в 1 (единицу).
Из чисел с плавающей точкой
При преобразовании из числа с плавающей точкой в целое, число будет округлено в сторону нуля.
Если число с плавающей точкой превышает пределы целого (как правило, это +/- 2.15e+9 = 2^31), результат будет неопределенным, так как целое не имеет достаточной точности, чтобы вернуть верный результат. В этом случае не будет выведено ни предупреждения, ни даже замечания!
Внимание | |
- Никогда не приводите неизвестную дробь к целому, так как это может иногда дать неожиданные результаты.
Смотрите более подробно: предупреждение о точности чисел с плавающей точкой. |
Из строк
Смотрите Преобразование строк в числа
Из других типов
Предостережение |
- Для других типов поведение преобразования в целое не определено. В настоящее время поведение такое же, как если бы значение сперва было преобразовано в булев тип. Однако не полагайтесь на это поведение, так как он может измениться без предупреждения. |
Булев
Числа с плавающей точкой
Отвечу на любые вопросы. С уважением, Дмитрий Владимирович.