Perl에서 정수 나누기를 어떻게해야합니까?
Perl에서 항상 정수 나누기를 수행 하는 좋은 방법은 무엇입니까 ?
예를 들어 다음을 원합니다.
real / int = int
int / real = int
int / int = int
어휘 범위의 integer
pragma 는 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
'Programing' 카테고리의 다른 글
Pandas에서 datetime 형식을 변경하는 방법 (0) | 2020.12.15 |
---|---|
람다를 이해하려고 (0) | 2020.12.15 |
육각형지도 타일로 지구 덮기 (0) | 2020.12.15 |
어떤 자바 스레드가 CPU를 차지하고 있습니까? (0) | 2020.12.15 |
less.js가 크롬에서 작동하지 않습니다. (0) | 2020.12.15 |