문제

좋은 방법은 무엇입니까? 언제나 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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top