Ответ 1
Вы можете использовать ints в Perl:
int(5/1.5) = 3;
Что такое хороший способ всегда выполнять целочисленное деление в Perl?
Например, я хочу:
real / int = int
int / real = int
int / int = int
Вы можете использовать ints в Perl:
int(5/1.5) = 3;
Лексически ограниченная integer
прагма заставляет Perl использовать целочисленную арифметику в своей области:
print 3.0/2.1 . "\n"; # => 1.42857142857143
{
use integer;
print 3.0/2.1 . "\n"; # => 1
}
print 3.0/2.1 . "\n"; # => 1.42857142857143
int(x+.5)
округляет положительные значения к ближайшему целому. Округление сложнее.
Чтобы округлить к нулю:
int($x)
В приведенных ниже решениях включите следующее утверждение:
use POSIX;
Чтобы округлить: POSIX::floor($x)
Чтобы округлить: POSIX::ceil($x)
Чтобы округлить от нуля: POSIX::floor($x) - int($x) + POSIX::ceil($x)
Чтобы округлить до ближайшего целого числа: POSIX::floor($x+.5)
Обратите внимание, что int($x+.5)
плохо работает для отрицательных значений. int(-2.1+.5)
равен int(-1.6)
, который равен -1.
вы можете:
use integer;
это объясняется Майклом Ратанапинатом или же использовать вручную:
$a=3.7;
$b=2.1;
$c=int(int($a)/int($b));
уведомление, 'int' не выполняется. это функция преобразования числа в целочисленную форму. это потому, что Perl 5 не имеет отдельного целочисленного деления. Исключение - когда вы используете целое число. Тогда вы потеряете реальное деление.
Надеюсь, что это работает.
int (9/4) = 2.
Спасибо Manojkumar
Eg 9/4 = 2,25
int (9)/int (4) = 2
9/4 - остаток/дениматор = 2
9/4 - 9% 4/4 = 2