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

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

Решение задачи:
Необходимо при выводе каждого элемента массива считать номер элемента, если он четный, то есть 2, 4, 6 и тд, то будем делать отступы.

Проверка числа на четность и нечетность. Код

// массив данных $array_users = array( "Иван Иванов", "Иван Петров", "Петр Иванов", "Петр Петров", "Сидор Иванов", "Сидор Петров" ); // вывод данных $num = 1; foreach($array_users as $value)< // проверяем четность if(($num % 2) == 0)< // если четное, то делаем отступ echo "$value
"; >else< // если не четное, то просто выводим echo "$value
"; > $num ++; >

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

С помощью такого же кода, можно добавлять стили для каждого третьего, каждого четвертого и тд элемента, только уже сравнивать остаток после деления на 2, 3, 4 и тд.

Источник

php, если число нечетное или четное

Каков самый простой самый простой способ узнать, является ли число / переменная нечетной или даже PHP? Это как-то связано с модом?

Я пробовал несколько скриптов, но .. Google не доставляет в настоящий момент.

Вы были правы, думая, что мода – хорошее место для начала. Вот выражение, которое вернет true, если $number is even, false, если нечетно:

Работает для каждого целочисленного значения PHP , см. Также Арифметические операторы PHP .

$number = 20; if ($number % 2 == 0)

Другим вариантом является простая проверка бит.

$even = ($num % 2 == 0); $odd = ($num % 2 != 0); 

Другой вариант – проверить, является ли последняя цифра четным числом:

$value = "1024";// A Number $even = array(0, 2, 4, 6, 8); if(in_array(substr($value, -1),$even))< // Even Number >else< // Odd Number > 

Или, чтобы сделать это быстрее, используйте isset() вместо array_search :

$value = "1024";// A Number $even = array(0 => 1, 2 => 1, 4 => 1, 6 => 1, 8 => 1); if(isset($even[substr($value, -1)])< // Even Number >else< // Odd Number > 

Или сделать это быстрее ( иногда проигрывает mod operator ):

$even = array(0, 2, 4, 6, 8); if(in_array(substr($number, -1),$even))< // Even Number >else< // Odd Number > 

Вот тест времени как доказательство моих результатов.

Я немного is_int и обнаружил, что между mod, is_int и & -оператором мода является самым быстрым, за которым следует & -оператор. is_int почти в 4 раза медленнее, чем мода.

Для целей тестирования я использовал следующий код:

$number = 13; $before = microtime(true); for ($i=0; $i $after = microtime(true); echo $after-$before." seconds mod
"; $before = microtime(true); for ($i=0; $i $after = microtime(true); echo $after-$before." seconds is_int
"; $before = microtime(true); for ($i=0; $i $after = microtime(true); echo $after-$before." seconds & operator
";

Результаты, полученные мной, были довольно последовательными. Вот пример:

0.041879177093506 seconds mod 0.15969395637512 seconds is_int 0.044223070144653 seconds & operator 

Хотя все ответы хороши и правильны, простое решение в одной строке:

Все четные числа, деленные на 2, приведут к целому числу

$number = 4; if(is_int($number/2)) < echo("Integer"); >else
//for numbers n [0,1,2,3,4. ] if((n+2)%2==1) < //odd >else < //even > 

Ноль – четное число. Другими словами, его четность – качество целого числа четное или нечетное – четное. Простейший способ доказать равенство нулю – это проверить, что он соответствует определению «четный»: он представляет собой целое число, кратное 2, в частности 0 × 2. В результате нуль имеет все свойства, характеризующие четные числа: 0 делится на 2, 0 окружен с обеих сторон нечетными числами, 0 – сумма целого числа (0) с самим собой, а набор из 0 объектов можно разбить на два равных множества. от http://ru.wikipedia.org/wiki/Parity_of_zero

Я делаю предположение, что есть счетчик уже на месте. в $ i, который увеличивается в конце цикла. Это работает для меня, используя сокращенный запрос.

Итак, что это делает, ну, он запрашивает заявление, которое мы делаем, в сущности, $ i является нечетным, в зависимости от того, будет ли его истинное или ложное определять, что возвращается. Возвращаемое значение заполняет нашу переменную $ row_pos

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

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

Полный пример того, что я использую, отмечает, что идентификатор имеет счетчик, примененный к нему, и класс использует мой нечетный / равномерный результат:

$i=0; foreach ($a as $k => $v) < $row_pos = ($i & 1) ? 'odd' : 'even'; echo "- - \n"; $i++; > 

в общем, это дает мне очень простой способ создать симпатичную таблицу.

Этот код проверяет, является ли число нечетным или даже на PHP. В примере $a равно 2 и вы получите четное число. Если вам нужно нечетное значение, измените значение $a

$a=2; if($a %2 == 0)< echo "

This Number is $a Even

"; >else< echo "

This Number is $a Odd

"; >

PHP преобразует нуль и пустую строку автоматически в нуль. Это происходит и с модулем. Следовательно, код

$number % 2 == 0 or !($number & 1) 

со значением $ number = » или $ number = null возвращает true. Я проверяю его на несколько больше:

function testEven($pArg)< if(is_int($pArg) === true)< $p = ($pArg % 2); if($p== 0)< print "The input '".$pArg."' is even.
"; >else< print "The input '".$pArg."' is odd.
"; > >else< print "The input '".$pArg."' is not a number.
"; > > The print is there for testing purposes, hence in practice it becomes: function testEven($pArg) < if(is_int($pArg)=== true)< return $pArg%2; >return false; >

Эта функция возвращает 1 для любого нечетного числа, 0 для любого четного числа и false, если оно не является числом. Я всегда пишу === true или === false, чтобы позволить себе (и другим программистам) знать, что тест имеет значение.

$before = microtime(true); $n = 1000; $numbers = range(1,$n); $cube_numbers = array_map('cube',$numbers); function cube($n) < $msg ='even'; if($n%2 !=0)< $msg = 'odd'; >return "The Number is $n is ".$msg; > foreach($cube_numbers as $cube)< echo $cube . "
"; > $after = microtime(true); echo $after-$before. 'seconds';
$number = 10; switch ($number%2)

Источник

Читайте также:  Блок с иконками html
Оцените статью