Как вывести целое число php

Целые числа

integer это число из набора Z =

Синтаксис

Целые числа могут специфицироваться в десятеричной (база 10), 16-ричной (база 16) или 8-ричной (база 8) нотации с необязательным знаком (- или +).

Если вы используете 8-ричную нотацию, первым символом числа должен быть 0 (нуль), для 16-ричной нотации первыми символами числа будут 0x.

Пример 6-1. Целочисленные литералы

Размер integer зависит от платформы, хотя максимальное значение около 2 миллионов является обычным (то есть 32-битное знаковое). PHP не поддерживает беззнаковые integers.

Переполнение

Если вы специфицируете число за рамками диапазона типа integer, оно будет интерпретировано как float. Также, если вы выполняете операцию, которая даёт в результате число за пределами диапазона типа integer, будет возвращено float.

Предупреждение!

К сожалению, в РНР был замечен bug, поэтому не всегда была корректная работа с отрицательными числами. Например: если выполнить -50000 * $million, результат будет
-429496728. Однако, когда оба операнда — положительные, проблем не возникает.

Это устранено в PHP 4.1.0.

В PHP нет операции целочисленного деления. 1/2 даст float 0.5.

Читайте также:  Что чистит сосуды головного мозга препараты

Конвертация в integer

Для явной конвертации значения в integer используйте приведение (int) или (integer). Однако в большинстве случаев вам нет необходимости использовать приведение/cast, поскольку значение будет конвертировано автоматически, если операция, функция или структура управления требует integer-аргумента.

Из boolean

Из чисел с плавающей точкой

При конвертации float в integer, число округляется в сторону нуля.

Если float выходит за диапазон integer (обычно это +/- 2.15e+9 = 2^31), результат будет неопределённым, поскольку float не имеет достаточной точности для выдачи точного integer-результата. В этом случае не будет выдано ни предупреждения, ни даже какого-либо уведомления!

Предупреждение! Никогда не приводите неизвестную дробь к integer, так как это может дать непредсказуемый результат.

Из string

Из других типов

Предупреждение! Поведение при конвертации в integer для других типов не определено. В настоящее время поведение такое же, как если бы значение сначала было конвертировано в boolean. Однако не полагайтесь на это поведение, так как оно может быть изменено без предупреждения.

Источник

Как вывести целое число php

Целое — это число из множества Z = <. -2, -1, 0, 1, 2, . >, обычно длиной 32 бита (от –2 147 483 648 до 2 147 483 647).

Целые могут быть указаны в десятичной, шестнадцатеричной или восьмеричной системе счисления, по желанию, с предшествующим знаком (- или +).

Если вы используете восьмеричную систему счисления, вы должны предварить число 0 (нулем), для использования шестнадцатеричной системы нужно поставить перед числом 0x .

= 1234 ; // десятичное число
$a = — 123 ; // отрицательное число
$a = 0123 ; // восьмеричное число (эквивалентно 83 в десятичной системе)
$a = 0x1A ; // шестнадцатеричное число (эквивалентно 26 в десятичной системе)
?>

Формально возможная структура целых такова:

десятичные : 53*
| 0

шестнадцатеричные: 0[xX][0-9a-fA-F]+

восьмеричные: 06+

целые:

Размер целого зависит от платформы, хотя, как правило, максимальное значение около двух миллиардов (это 32-битное знаковое). PHP не поддерживает беззнаковые целые.

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

= 2147483647 ;
var_dump ( $large_number );
// вывод: int(2147483647)

$large_number = 2147483648 ;
var_dump ( $large_number );
// вывод: float(2147483648)

// это справедливо и для шестнадцатеричных целых:
var_dump ( 0x80000000 );
// вывод: float(2147483648)

$million = 1000000 ;
$large_number = 50000 * $million ;
var_dump ( $large_number );
// вывод: float(50000000000)
?>

в PHP не существует оператора деления целых. Результатом 1/2 будет число с плавающей точкой 0.5 . Вы можете привести значение к целому, что всегда округляет его в меньшую сторону, либо использовать функцию round().

( 25 / 7 ); // float(3.5714285714286)
var_dump ((int) ( 25 / 7 )); // int(3)
var_dump ( round ( 25 / 7 )); // float(4)
?>

Преобразование в целое (integer)

Для несомненного преобразования значения в целое используйте приведение типа (int) или (integer). Однако в большинстве случаев вам нет необходимости использовать приведение типа, поскольку значение будет автоматически преобразовано, если оператор, функция или управляющая конструкция требует целый аргумент. Вы также можете преобразовать значение в целое при помощи функции intval().

Преобразование типа integer в тип boolean

FALSE преобразуется в 0 (ноль), а TRUE — в 1 (единицу).

Преобразование типа integer в тип float

При преобразовании из числа с плавающей точкой в целое, число будет округлено в сторону нуля .

Если число с плавающей точкой превышает пределы целого (как правило, это +/- 2.15e+9 = 2^31 ), результат будет неопределенным, так как целое не имеет достаточной точности, чтобы вернуть верный результат. В этом случае не будет выведено ни предупреждения, ни даже замечания!

Внимание! Никогда не приводите неизвестную дробь к целому, так как это может иногда дать неожиданные результаты (подробнее об этой особенности здесь) Пример ошибочного преобразования:

echo (int) ( ( 0.1 + 0.7 ) * 10 ); // выводит 7! (ошибка!)
?>

Преобразование типа integer в тип string

Преобразование типа integer в другие типы данных

Для других типов поведение преобразования типа integer не определено.

Источник

Различные типы чисел в PHP

Работая с числамт следует отметить, что PHP обеспечивает автоматическое преобразование типов данных. Например, если вы присвоите переменной целочисленное значение, тип этой переменной автоматически будет целым числом. На следующей строке кода вы можете назначить строку той же переменной и её тип изменится на строку. Это автоматическое преобразование иногда может нарушить ваш код.

Целые числа PHP

Самый простой тип числа в PHP — это целое число. Как вы уже знаете, целое число — это число без десятичной части. Например, 7 представляет собой целое число, а также 10358 или -10358. С другой стороны, 10.0 и 5.58 — это числа с плавающей точкой.

Таким образом, целое число — это недесятичное число от -2147483648 до 2147483647. Значение больше (или меньше), чем этот целочисленный интервал, будет сохранено как float , потому что оно превышает предел целого числа.

Еще одна особенность чисел, которую нужно знать, это то, что даже если 4 * 2.5 равно 10 , результат сохраняется как float , потому что один из операндов — float (2.5) .

Основные правила определения целого числа:

  • должно содержать хотя бы одну цифру;
  • не должно иметь десятичной точки;
  • может быть положительным или отрицательным;
  • может быть указано в трех форматах: десятичном (основание 10), шестнадцатеричном (основание 16 — с префиксом 0x) или восьмеричном (основание 8 — с префиксом 0).

Функции PHP для проверки целочисленного типа переменной:

  • is_int() – проверяет, является ли значение целым числом
  • is_int() – псевдоним is_int()
  • is_int() – псевдоним is_int()

Проверим, является ли тип переменной целым числом:

Пример

Результат выполнения кода:

Число с плавающей точкой

В отличие от целых чисел ряд типов float может быть представлен различными способами. Значения 4.54 , 7.0 , 3.87E+10 и 4.56E-5 — все это числа с плавающей точкой.

PHP автоматически преобразует число в тип float , когда используются десятичные или очень большие числа. Тип float обычно может хранить числа с величиной до 1.7976931348623E+308 (зависит от платформы) и иметь максимальную точность 14 цифр.

В PHP есть следующие функции для проверки того, является ли переменная типом float :

  • is_float()
  • is_double() — псевдоним is_float()

Так как is_double() является просто псевдонимом is_float() , вы можете использовать любую из них и получить тот же результат:

Пример

Результат выполнения кода:

PHP Бесконечность

В PHP любое числовое значение выше PHP_FLOAT_MAX на платформе считается бесконечным.

Вы можете проверить, является ли числовое значение конечным или бесконечным, используя функции is_finite() и is_infinite() .

Функция PHP var_dump() возвращает тип данных и значение:

Пример

Результат выполнения кода:

Специальное значение NAN

Некоторые функции при работе с числами могут возвращать специальное значение NAN . Значение NAN является сокращением от Not a Number (не число). Данное значение означает, что какая-то используемая математическая функция вышла за пределы допустимого диапазона значений в операциях с плавающей точкой или не смогла обработать свои входные данные. Например, log(-1) будет NAN . Аналогично, acos(5) также будет NAN . Вы можете проверить, не является ли значение, возвращаемое математической операцией, не числом, используя функцию is_nan() .

Функция PHP var_dump() возвращает тип данных и значение:

Пример

Результат выполнения кода:

Числовые строки в PHP

Функцию is_numeric() можно использовать для определения, действительно ли строка или переменная является числовой или нет. Эта функция вернет true для чисел, записанных в восьмеричной, двоичной или шестнадцатеричной нотации. Она также вернет true , если числа записаны в экспоненциальном виде, например, +19.42e49 .

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

Пример

Результат выполнения кода:

Как вы можете видеть, вся действительная числовая строка была преобразована в их соответствующие значения перед добавлением или другими операциями. Тип переменной $x в результате зависит от её конечного значения.

В предпоследнем случае шестнадцатеричная строка «0xfedd24» не преобразуется в ее десятичное значение потому, что PHP 7 не считает ее допустимой числовой строкой.

Примечание: Примечание: Начиная с PHP 7.0 функция is_numeric() возвращает значение FALSE для числовых строк в шестнадцатеричной форме (например, «0xfedd24» ), поскольку они больше не считаются числовыми строками.

Приведение строк и чисел с плавающей точкой к целым числам

Иногда вам будет нужно преобразовать числовое значение в другой тип данных. В PHP имеется множество функций и методов для этих целей. В большинстве случаев приведение будет выполнено неявно и вам не придется беспокоиться об этом. Но, если вам нужно сделать преобразование, используйте методы, приведенные ниже.

Для преобразования любого значения в целое число вы можете использовать функции (int) или (integer) . В случае float значения всегда будут округлены до нуля. Другой способ преобразовать строки и float в целые числа применить функцию intval() . Обе функции (int) и intval() работают одинаково.

Источник

Целые числа

Синтаксис

Целые числа могут быть указаны в десятичной (основание 10), шестнадцатеричной (основание 16), восьмеричной (основание 8) или двоичной (основание 2) системе счисления, с необязательным предшествующим знаком (- или +).

Двоичная запись integer доступна начиная с PHP 5.4.0.

Для записи в восьмеричной системе счисления, необходимо поставить пред числом 0 (ноль). Для записи в шестнадцатеричной системе счисления, необходимо поставить перед числом 0x. Для записи в двоичной системе счисления, необходимо поставить перед числом 0b

Пример #1 Целые числа

Формально, структуру целых чисел можно записать так:

Размер integer зависит от платформы, хотя, как правило, максимальное значение примерно равно 2 миллиардам (это 32-битное знаковое). 64-битные платформы обычно имеют максимальное значение около 9E18, кроме Windows, которая всегда 32-битная. PHP не поддерживает беззнаковые целые ( integer ). С версии PHP 4.4.0 и PHP 5.0.5 размер integer может быть определен с помощью константы PHP_INT_SIZE , а его максимальное значение — с помощью константы PHP_INT_MAX .

Если в восьмеричном integer будет обнаружена неверная цифра (например, 8 или 9), оставшаяся часть числа будет проигнорирована.

Пример #2 Странности с восьмеричными числами

Переполнение целых чисел

Если PHP обнаружил, что число превышает размер типа integer , он будет интерпретировать его в качестве float . Аналогично, если результат операции лежит за границами типа integer , он будет преобразован в float .

Пример #3 Переполнение целых на 32-битных системах

= 2147483647 ;
var_dump ( $large_number ); // int(2147483647)

$large_number = 2147483648 ;
var_dump ( $large_number ); // float(2147483648)

$million = 1000000 ;
$large_number = 50000 * $million ;
var_dump ( $large_number ); // float(50000000000)
?>

Пример #4 Переполнение целых на 64-битных системах

= 9223372036854775807 ;
var_dump ( $large_number ); // int(9223372036854775807)

$large_number = 9223372036854775808 ;
var_dump ( $large_number ); // float(9.2233720368548E+18)

$million = 1000000 ;
$large_number = 50000000000000 * $million ;
var_dump ( $large_number ); // float(5.0E+19)
?>

В PHP не существует оператора деления целых чисел. Результатом 1/2 будет float 0.5. Если привести значение к integer , оно будет округлено вниз. Для большего контроля над округлением используйте функцию round() .

Преобразование в целое

Для явного преобразования в integer , используйте приведение (int) или (integer). Однако, в большинстве случаев, в приведении типа нет необходимости, так как значение будет автоматически преобразовано, если оператор, функция или управляющая структура требует аргумент типа integer . Значение также может быть преобразовано в integer с помощью функции intval() .

Если resource преобразуется в integer , то результатом будет уникальный номер ресурса, привязанный к resource во время исполнения PHP программы.

Из булевого типа

FALSE преобразуется в 0 (ноль), а TRUE — в 1 (единицу).

Из чисел с плавающей точкой

При преобразовании из float в integer , число будет округлено в сторону нуля.

Если число с плавающей точкой превышает размеры integer (обычно +/- 2.15e+9 = 2^31 на 32-битных системах и +/- 9.22e+18 = 2^63 на 64-битных системах, кроме Windows), результат будет неопределенным, так как float не имеет достаточной точности, чтобы вернуть верный результат. В этом случае не будет выведено ни предупреждения, ни даже замечания!

Никогда не приводите неизвестную дробь к integer , так как это иногда может дать неожиданные результаты.

Источник

Оцените статью