Php максимальное значение числа

Работа с числами в PHP

Сборник математических функций PHP и примеры их использования.

Проверка переменных

Является ли переменная числом

is_numeric($value) – проверяет, является ли значение или переменная числом или строкой, содержащей число.

is_numeric(1); // true is_numeric(0.1); // true is_numeric(-1); // true is_numeric(-0.1); // true is_numeric('1'); // true is_numeric('1abc'); // false is_numeric('abc'); // false

ctype_digit($value) – проверяет, являются ли все символы в строке цифрами.

ctype_digit('123'); // true ctype_digit('123.10'); // false ctype_digit('abc'); // false ctype_digit('1abc'); // false ctype_digit('abc1'); // false

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

is_int(1); // true is_int(0.1); // false is_int(-1); // true is_int(-0.1); // false is_int('1'); // false is_int('1abc'); // false is_int('abc'); // false

is_float($value) – проверяет, является ли значение числом с плавающей точкой.

is_float(1); // false is_float(0.1); // true is_float(-1); // false is_float(-0.1); // true is_float('1'); // false is_float('1abc'); // false is_float('abc'); // false

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

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

$value = 1; if (is_int($value)) < echo 'Целое число'; >elseif (is_float($value)) < echo 'Число с плавающей точкой'; >else

Положительное или отрицательное

$value = 1; if ($value == abs($value)) < echo 'Число положительное'; >if ($value != abs($value))

Чётное или нечётное

$value = 100; if (($value % 2) == 0) < echo 'Число чётное'; >if (($value % 2) != 0)

Привидение к типу

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

(int) 1; // 1 (int) 0.1; // 0 (int) -1; // -1 (int) -0.1; // 0 (int) '1'; // 1 (int) 'abc'; // 0 (int) '1abc'; // 1 (int) 'abc1'; // 0

В место (int) можно использовать (intiger) . Тоже самое делает функция intval() :

intval(1); // 1 intval(0.1); // 0 intval(-1); // -1 intval(-0.1); // 0 intval('1'); // 1 intval('abc'); // 0 intval('1abc'); // 1 intval('abc1'); // 0

Преобразование в число с плавающей точкой

(float) 1; // 1 (float) 0.1; // 0.1 (float) -1; // -1 (float) -0.1; // -0.1 (float) '1'; // 1 (float) 'abc'; // 0 (float) '1abc'; // 1 (float) 'abc1'; // 0

В место (float) можно использовать (double) или (real) и тоже самое делает функция floatval() .

floatval(1); // 1 floatval(0.1); // 0.1 floatval(-1); // -1 floatval(-0.1); // -0.1 floatval('1'); // 1 floatval('abc'); // 0 floatval('1abc'); // 1 floatval('abc1'); // 0

Округление

Функция round($value, $precision) округляет значение до указанных цифр после запятой.

echo round(100001.123456, 2); // 100001.12

Функция может окрукруглять значение целой части (числа перед запятой), для этого нужно указать отрицательное значение во втором аргументе.

Округление до целого числа в меньшую сторону:

echo floor(100.4); // 100 echo floor(100.9); // 100

Округление до целого числа в большую сторону:

echo ceil(100.4); // 101 echo ceil(100.1); // 101

Ведущие нули

Добавить ведущие нули:

echo sprintf("%06d", 100); // 000100 echo sprintf("%010d", 100); // 0000000100

Удалить ведущие нули:

echo intval('0000000100'); // 100 // Или с помощью ltrim echo ltrim('0000000100', '0'); // 100

Абсолютное значение

Функция abs($value) – возвращает абсолютное значение (модуль числа), т.е. из отрицательного делает положительное.

echo abs(100); // 100 echo abs(-100); // 100 echo abs(1.5); // 1.5 echo abs(-1.5); // 1.5

Сделать число отрицательным:

$value = 10; $value = -abs($value); echo $value; // -10

Инкремент и декремент

Инкремент – увеличение значения на единицу, бывает постфиксный и префиксный.

// Постфиксный инкремент $value = 10; echo $value++; // 10 echo $value; // 11 // Префиксный инкремент $value = 10; echo ++$value; // 11 echo $value; // 11

Декремент уменьшает значение на единицу.

// Постфиксный декремент $value = 10; echo $value--; // 10 echo $value; // 9 // Префиксный декремент $value = 10; echo --$value; // 9 echo $value; // 9

Минимальное значение

Источник

Php максимальное значение числа

max — Возвращает наибольшее значение

Описание

Альтернативная сигнатура (не поддерживается с именованными аргументами):

Если первый и единственный параметр — массив, то max() возвратит наибольшее значение из этого массива. Если переданы хотя бы два параметра, max() вернёт наибольший из них.

Замечание:

Значения разных типов будут сравниваться в соответствии со стандартными правилами сравнения. К примеру, нечисловая строка ( string ) будет сравниваться с целым числом ( int ) так, как будто это 0 , а множество нечисловых строк ( string ) будут сравниваться алфавитно-цифровым порядком. Выбранное значение будет возвращено без конвертации типа.

Будьте осторожны при передаче аргументов разных типов, поскольку результат max() может вас удивить.

Список параметров

Любое поддающееся сравнению значение.

Любые поддающиеся сравнению значения.

Массив, содержащий значения.

Возвращаемые значения

max() вернёт значение «наибольшего» из элементов массива, в соответствии со стандартными правилами сравнения. Если несколько разнотипных значений посчитаются идентичными (например 0 и ‘abc’ ), функция вернёт первое из них.

Ошибки

Если передан пустой массив, функция max() выбрасывает ошибку ValueError .

Список изменений

Версия Описание
8.0.0 Функция max() теперь в случае возникновения ошибки выбрасывает ошибку ValueError ; ранее возвращалось значение false и выдавалась ошибка уровня E_WARNING .

Примеры

Пример #1 Пример использования max()

echo max ( 1 , 3 , 5 , 6 , 7 ); // 7
echo max (array( 2 , 4 , 5 )); // 5

// ‘hello’ будет представлено как числовое значение 0.
// Оба параметра имеют одинаковое значение, поэтому результат
// определяется порядком, в котором параметры переданы
echo max ( 0 , ‘hello’ ); // 0
echo max ( ‘hello’ , 0 ); // hello

// Здесь сравниваются -1 < 0, так что 'hello' больше
echo max ( ‘hello’ , — 1 ); // hello

// В данном случае 0 больше, чем -1, поэтому результат равен ‘hello’.
echo max (- 1 , ‘hello’ ); // hello

// При сравнении массивов, разной длины — max вернёт более длинный
$val = max (array( 2 , 2 , 2 ), array( 1 , 1 , 1 , 1 )); // array(1, 1, 1, 1)

// При сравнении массивов одинаковой длины — max будет сравнивать их поэлементно
// слева направо, в данном примере 2 == 2, но 4 < 5
$val = max (array( 2 , 4 , 8 ), array( 2 , 5 , 1 )); // array(2, 5, 1)

// Если передан массив и не массив, в результате всегда будет возвращён массив
$val = max ( ‘string’ , array( 2 , 5 , 7 ), 42 ); // array(2, 5, 7)

// Если один из аргументов NULL или булево значение, то сравнение с другими
// значениями будет происходить по правилу FALSE < TRUE, вне зависимости от того
// какого типа параметры переданы.
// В примере ниже, -10 трактуется как TRUE
$val = max (- 10 , FALSE ); // -10

// 0 всегда трактуется как FALSE, значит он «меньше чем» TRUE
$val = max ( 0 , TRUE ); // TRUE
?>

Смотрите также

  • min() — Находит наименьшее значение
  • count() — Подсчитывает количество элементов массива или Countable объекте

User Contributed Notes 19 notes

The simplest way to get around the fact that max() won’t give the key is array_search:

$student_grades = array ( «john» => 100 , «sarah» => 90 , «anne» => 100 );
$top_student = array_search ( max ( $student_grades ), $student_grades ); // john
?>

This could also be done with array_flip, though overwriting will mean that it gets the last max value rather than the first:

$grades_index = array_flip ( $student_grades );
$top_student = $grades_index [ max ( $student_grades )]; // anne
?>

To get all the max value keys:

$top_students = array_keys ( $student_grades , max ( $student_grades )); // john, anne
?>

echo max ( 0 , ‘hello’ );
?>

Before PHP 8.0 will return int(0) but since PHP 8.0 above code returns string(«hello»)!!

max() (and min()) on DateTime objects compares them like dates (with timezone info) and returns DateTime object.
$dt1 = new DateTime ( ‘2014-05-07 18:53’ , new DateTimeZone ( ‘Europe/Kiev’ ));
$dt2 = new DateTime ( ‘2014-05-07 16:53’ , new DateTimeZone ( ‘UTC’ ));
echo max ( $dt1 , $dt2 )-> format ( DateTime :: RFC3339 ) . PHP_EOL ; // 2014-05-07T16:53:00+00:00
echo min ( $dt1 , $dt2 )-> format ( DateTime :: RFC3339 ) . PHP_EOL ; // 2014-05-07T18:53:00+03:00
?>

It works at least 5.3.3-7+squeeze17

Note that max() can compare dates, so if you write something like this:

$dates = array( ‘2009-02-15’ , ‘2009-03-15’ );
echo max ( $dates );
?>

you will get: 2009-03-15.

Источник

Целые числа

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

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

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

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

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

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

десятичные : 11* | 0 шестнадцатеричные : 0[xX][0-9a-fA-F]+ восьмеричные : 07+ двоичные : 0b[01]+ целые : [+-]?десятичные | [+-]?шестнадцатеричные | [+-]?восьмеричные | [+-]?двоичные

Размер 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-битных системах

$large_number = 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-битных системах

$large_number = 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() .

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

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

Для явного преобразования в 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 , так как это иногда может дать неожиданные результаты.

Источник

Читайте также:  Запуск dll в python
Оцените статью