Проверка на делимость в PHP

mirek

Участник
Регистрация
10 Июн 2011
Сообщения
165
Реакции
4
Существует ли в PHP ф-ция, которая бы осуществляла проверку на делимость ?

Может есть готовое решение ?
 
просто результат деления проверить на то является ли он целым числом
PHP:
<?php
$strings = array('1820.20', '10002', 'wsl!12');
foreach ($strings as $testcase) {
    if (ctype_digit($testcase)) {
        echo "Строка $testcase состоит только из цифр.\n";
    } else {
        echo "Строка $testcase не состоит только из цифр.\n";
    }
}
?>
 
просто результат деления проверить на то является ли он целым числом
Это можно сделать иначе (лично мне - больше нравится :):(
PHP:
if(!filter_var($value, FILTER_VALIDATE_INT)) {
	die('Value is not integer');
}
А что касается "проверки на делимость" - это действительно операнд %
PHP:
for($i = 0; $i < 100; $i++) {
	if($i % 10 == 0) {
		echo $i;
	}
}
 
Спасибо. Есть еще ф-ция gmp_divexact

Но меня вполне устроил %
 
Можно еще так:
PHP:
c= 10/8;
d= intval(10/8)
if (c==d){
    echo 'делится';
}
else {
    echo 'не делится';
}
 
не понимаю саму суть %
что значит делимости ?? что угодно можно поделить на что угодно кроме нуля :D
php код
PHP:
<?php
for($i = 0; $i < 100; $i++) {
    if($i % 3.14 == 0) {
        echo $i."\r\n";
    }
} 
sleep(600);
?>
выдаст
Код:
0
3
6
9
12
15
18
21
24
27
30
33
36
39
42
45
48
51
54
57
60
63
66
69
72
75
78
81
84
87
90
93
96
99

хотя делится любое число и ни одно из них не делится без остатка - так что же тогда за результат мы получили ?
 
% - остаток от деления для целых чисел. Если один из операндов нецелый, то его, по всей видимости, округляют.
 
если и округляют то по какому то не понятному принципу
PHP:
<?php 
for($i = 0; $i < 50; $i++) { 
    if($i % 3.94 == 0) { 
        echo $i."\r\n"; 
    } 
}  
sleep(600); 
?>
выдаст
Код:
0
3
6
9
12
15
18
21
24
27
30
33
36
39
42
45
48
 
если и округляют то по какому то не понятному принципу
% - Деление по модулю, результат - Целочисленный остаток от деления
Операция вычисления остатка от деления "%" работает только с целыми числами, так что применение ее к дробным может привести к нежелательному результату.
 
Назад
Сверху