PHP Числа
В этой главе мы подробно рассмотрим целые числа (integer), числа с плавающей запятой (float) и числовые строки (number string).
PHP Числа
В PHP следует обратить внимание на то, что он обеспечивает автоматическое преобразование типов данных.
Таким образом, если вы назначите целочисленное значение переменной, тип этой переменной автоматически будет целым числом. Затем, если вы назначите строку для той же переменной, тип изменится на строку.
Это автоматическое преобразование может иногда нарушать ваш код.
PHP Integer - Целые числа
Целое число (integer) - это число без десятичной части.
2, 256, -256, 10358, -179567 - целые числа. В то время как 7.56, 10.0, 150.67 являются числами с плавающей точкой.
Таким образом, целочисленный тип данных - это недесятичное число в диапазоне от -2147483648 до 2147483647. Значение, большее (или меньшее) этого значения, будет сохранено как число с плавающей запятой, поскольку оно превышает предел целого числа.
Еще одна важная вещь, которую нужно знать, это то, что даже если 4 * 2.5 равно 10, результат сохраняется как float, потому что один из операндов является float (2.5).
Вот несколько правил для целых чисел:
- Целое число должно содержать хотя бы одну цифру
- Целое число не должно иметь десятичной точки
- Целое число может быть положительным или отрицательным
- Целые числа можно указывать в трех форматах: десятичное (на основе 10), шестнадцатеричное (на основе 16 - с префиксом 0x) или восьмеричное (на основе 8 - с префиксом 0)
PHP имеет следующие функции, чтобы проверить, является ли тип переменной целочисленным (integer):
- is_int()
- is_integer() - псевдоним is_int()
- is_long() - псевдоним is_int()
Пример
Проверить, является ли тип переменной целочисленным:
<?php
$x = 5985;
var_dump(is_int($x));
$x = 59.85;
var_dump(is_int($x));
?>
Попробуйте сами »PHP Float - Числа с плавающей точкой
Число с плавающей запятой - это число с десятичной точкой или число в экспоненциальной форме.
2.0, 256.4, 10.358, 7.64E + 5, 5.56E-5 - все числа с плавающей точкой.
Тип данных с плавающей запятой обычно может хранить значение до 1.7976931348623E + 308 (зависит от платформы) и может иметь максимальную точность 14 цифр.
PHP имеет следующие функции для проверки, является ли тип переменной float:
- is_float()
- is_double() - псевдоним is_float()
Пример
Проверьте, является ли тип переменной float:
<?php
$x = 10.365;
var_dump(is_float($x));
?>
Попробуйте сами »PHP Infinity - Бесконечность
Числовое значение, большее чем PHP_FLOAT_MAX считается бесконечным.
PHP имеет следующие функции для проверки, является ли числовое значение конечным или бесконечным:
Однако PHP функция var_dump() возвращает тип данных и значение:
Пример
Проверить, является ли числовое значение конечным или бесконечным:
<?php
$x = 1.9e411;
var_dump($x);
?>
Попробуйте сами »PHP NaN - Не число
NaN означает Not a Number - не число.
NaN используется для невозможных математических операций.
PHP имеет следующие функции для проверки, если значение не является числом:
Однако PHP функция var_dump() возвращает тип данных и значение:
PHP Numerical Strings - Числовые строки
PHP функция is_numeric() может использоваться для определения, является ли переменная числовой. Функция возвращает true, если переменная является числом или числовой строкой, в противном случае false.
Пример
Проверить, является ли переменная числовой:
<?php
$x = 5985;
var_dump(is_numeric($x));
$x = "5985";
var_dump(is_numeric($x));
$x = "59.85" + 100;
var_dump(is_numeric($x));
$x = "Hello";
var_dump(is_numeric($x));
?>
Попробуйте сами »Примечание: Начиная из PHP 7.0: функция is_numeric() вернет FALSE для числовых строк в шестнадцатеричной форме (например, 0xf4c3b00c), так как они больше не рассматриваются как числовые строки.
PHP Приведение string и float к целым числам (integer)
Иногда необходимо преобразовать числовое значение в другой тип данных.
Функции (int), (integer) или intval() часто используются для преобразования значения в целое число.
Пример
Привести float и string в integer:
<?php
// Привести float к int
$x = 23465.768;
$int_cast = (int)$x;
echo $int_cast;
echo "<br>";
// Привести string к int
$x =
"23465.768";
$int_cast = (int)$x;
echo $int_cast;
?>
Попробуйте сами »