Как я должен выполнять целочисленное деление в Perl?

StackOverflow https://stackoverflow.com/questions/539797

  •  22-08-2019
  •  | 
  •  

Вопрос

Что такое хороший способ всегда есть ли целочисленное деление в Perl?

Например, я хочу:

real / int = int

int / real = int

int / int = int
Это было полезно?

Решение 2

Вы можете использовать целые числа в 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 не имеет отдельного целочисленного деления.исключение составляет случай, когда вы "используете integer".Тогда вы потеряете реальное разделение.

Надеюсь, это сработает

int(9/4) = 2.

Спасибо Маноджкумар

Например 9 / 4 = 2.25

int(9) / int(4) = 2

9/4 - остаток / определитель = 2

9 /4 - 9 % 4 / 4 = 2

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top