Perl에서 정수 부서를 어떻게해야합니까?
-
22-08-2019 - |
문제
좋은 방법은 무엇입니까? 언제나 Perl의 정수 부서가 있습니까?
예를 들어, 나는 원한다 :
real / int = int
int / real = int
int / int = int
해결책 2
Perl에서 ints를 캐스팅 할 수 있습니다.
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)
둥글게 긍정적인 가장 가까운 정수에 대한 값. 반올림이 더 어렵습니다.
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