Php что значит inf

Различные типы чисел в 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).
Читайте также:  METANIT.COM

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

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

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

Пример

 $x = 7775; 
var_dump(is_int($x)); // выведет bool(true)

$x = 77.85;
var_dump(is_int($x)); // выведет bool(false)
?>

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

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

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

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

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

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

Пример

 $x = 10.365; 
var_dump(is_float($x)); // выведет bool(true)

$x = 77.85;
var_dump(is_double($x)); // выведет bool(true)
?>

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

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

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

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

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

Пример

 $x = 3.14e411; 
var_dump($x); // выведет float(INF)
?>

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

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

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

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

Пример

 $x = acos(5); 
var_dump($x); // выведет float(NAN)
?>

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

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

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

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

Пример

 $x = 3985; 
var_dump(is_numeric($x));

$x = "3985";
var_dump(is_numeric($x));

$x = "39.85" + 100;
var_dump(is_numeric($x));

$x = 0xfedd24;
var_dump(is_numeric($x));

$x ="0xfedd24";
var_dump(is_numeric($x));

$x = "Привет мир";
var_dump(is_numeric($x));
?>

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

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

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

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

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

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

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

Пример

 // Привести float к int 
$x = 77465.768;
$int_cast = (int)$x;
echo $int_cast; echo "
";

// Привести строку к int
$x = "77465.768";
$int_cast = (int)$x;
echo $int_cast;
?>

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

Источник

Предопределённые константы

Перечисленные ниже константы всегда доступны как часть ядра PHP.

Математические константы

Константа Значение Описание Доступна с версии
M_PI 3.14159265358979323846 число Пи
M_E 2.7182818284590452354 число Эйлера (e)
M_LOG2E 1.4426950408889634074 log_2 e
M_LOG10E 0.43429448190325182765 lg e
M_LN2 0.69314718055994530942 ln 2
M_LN10 2.30258509299404568402 ln 10
M_PI_2 1.57079632679489661923 Пи/2
M_PI_4 0.78539816339744830962 Пи/4
M_1_PI 0.31830988618379067154 1/Пи
M_2_PI 0.63661977236758134308 2/Пи
M_SQRTPI 1.77245385090551602729 sqrt(Пи) PHP 5.2.0
M_2_SQRTPI 1.12837916709551257390 2/sqrt(Пи)
M_SQRT2 1.41421356237309504880 sqrt(2)
M_SQRT3 1.73205080756887729352 sqrt(3)
M_SQRT1_2 0.70710678118654752440 1/sqrt(2)
M_LNPI 1.14472988584940017414 Натуральный логарифм числа пи
M_EULER 0.57721566490153286061 Постоянная Эйлера
PHP_ROUND_HALF_UP 1 Округление к большему целому
PHP_ROUND_HALF_DOWN 2 Округление к меньшему целому
PHP_ROUND_HALF_EVEN 3 Округление к чётному числу
PHP_ROUND_HALF_ODD 4 Округление к нечётному числу
NAN NAN (тип float) Не является числом (Not A Number)
INF INF (тип float) Бесконечность

Источник

PHP целые числа, числа с плавающей точкой и числовые строки

Monty Shokeen

Monty Shokeen Last updated Dec 28, 2020

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

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

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

Целые числа

Самый простой тип числа в PHP — это целое число. Как вы уже знаете, целые числа являются числами без какой-либо десятичной части. Например, 2 представляет собой целое число, а также 235298 или -235298. С другой стороны, 2.0 и 3.58 — это числа с плавающей точкой. Мы обсудим их более подробно позже.

Важно помнить, что нет необходимости, чтобы число было типа int , если оно не имеет десятичной части. Например, 16*2.5 составляет ровно 40 , но тип этого результата по-прежнему будет числом float . Когда вы умножаете числа, конечный результат будет иметь тип float, если хотя бы один из операндов был float. Не имеет значения, имеет ли конечное число десятичную часть или нет.

Кроме того, максимально возможное значение, которое целое число может иметь в PHP в вашей системе, может быть получено с использованием константы PHP_INT_MAX . Значение, большее по величине, чем значение, возвращаемое PHP_INT_MAX , будет храниться как float, даже если оно выглядит как целое число.

Как правило, вы ожидаете, что результат умножения двух переменных типа int будет иметь тип int . Однако это не так в случае переполнения. Умножение пяти или шести разных чисел может легко вывести вас за пределы типа int . Например, результат 128*309*32*43*309 — это float в моей системе, потому что он превышает значение PHP_INT_MAX , которое равно 2147483647 .

Вы можете использовать функцию is_int($value) , чтобы проверить, имеет ли число целочисленный тип. Существует два псевдонима этой функции: is_integer($value) и is_long($value) . Обе они дадут один и тот же результат.

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

Следующий наиболее распространенный тип числа, с которым вы будете иметь дело, — это float. В отличие от целых чисел, которые в большинстве случаев были просто числами без десятичных точек, ряд типов float может быть представлен различными способами. Значения 3.14 , 12.0 , 5.87E+10 и 3.56E-5 — все это числа с плавающей точкой.

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

Значение 1.7976931348623E+308 может показаться очень большим значением — и это так! — но числа с плавающей точкой имеют максимальную точность всего около 14 цифр. Любое число с большим количеством цифр, чем это, потеряет свою точность. Это означает, что вы можете хранить очень большое число, но вы не сможете хранить информацию о его точном значении — во многих случаях float является лишь приблизительным.

Существуют две функции, которые могут использоваться для определения того, является ли значение, с которым вы имеете дело, с плавающей точкой. Этими функциями являются is_float() и is_double() . На самом деле is_double() является просто псевдонимом is_float() , поэтому вы можете использовать любую из них и получить тот же результат.

Бесконечность и NaN

Есть еще два вида числовых значений, с которыми вам придется иметь дело при написании программ, связанных с математикой. Эти значения бесконечности и NaN (не числа). Оба эти значения требуют небольшого объяснения, потому что они отличаются от ожидаемых.

Бесконечность в PHP отличается от бесконечности в реальной жизни. В PHP любое числовое значение выше приблизительно PHP_FLOAT_MAX на платформе считается бесконечным. Итак, 1.8e308 даст вам float(INF) на var_dump() . Вы можете проверить, является ли числовое значение конечным или бесконечным, используя функции is_finite() и is_infinite() .

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

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

Подобно тому, как PHP динамически меняет тип разных чисел в зависимости от того, как их значения используются или назначаются, он также может вывести значение различных числовых строк для преобразования их в числа.

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

Начиная с PHP 7.0.0, когда вы передаете строку в is_numeric() , она возвращает только true , если строка состоит из необязательного знака, некоторых цифр, необязательной десятичной и необязательной экспоненциальной части. Это означает, что числовая строка, записанная в шестнадцатеричном или двоичном формате, вернет false с PHP 7.0.0.

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

Источник

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