Programing

Perl에서 정수 나누기를 어떻게해야합니까?

lottogame 2020. 12. 15. 08:10
반응형

Perl에서 정수 나누기를 어떻게해야합니까?


Perl에서 항상 정수 나누기를 수행 하는 좋은 방법은 무엇입니까 ?

예를 들어 다음을 원합니다.

real / int = int

int / real = int

int / int = int

어휘 범위의 integerpragma 는 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

Perl에서 int를 캐스트 할 수 있습니다.

int(5/1.5) = 3;

int(x+.5)반올림합니다 긍정적 가장 가까운 정수를 향해 값을. 반올림이 더 어렵습니다.

0으로 반올림하려면 :

int($x)

아래 솔루션의 경우 다음 설명을 포함하십시오.

use POSIX;

내림하려면 : POSIX::floor($x)

반올림하려면 : POSIX::ceil($x)

0에서 반올림하려면 : 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;

Michael Ratanapintha가 설명하거나 수동으로 사용하십시오.

$a=3.7;
$b=2.1;

$c=int(int($a)/int($b));

'int'는 캐스팅되지 않습니다. 숫자를 정수 형태로 변환하는 기능입니다. 이는 Perl 5에 별도의 정수 분할이 없기 때문입니다. 예외는 '정수를 사용'하는 경우입니다. 그러면 실제 분열을 잃게됩니다.


작동하기를 바랍니다.

int (9/4) = 2.

감사합니다 Manojkumar


예 : 9/4 = 2.25

int (9) / int (4) = 2

9/4-나머지 / 데니 네이터 = 2

9/4-9 % 4/4 = 2

참조 URL : https://stackoverflow.com/questions/539797/how-should-i-do-integer-division-in-perl

반응형