2013-03-12 8 views
0

일부 정수 범위를 반복하고 $ _ value를 bigint로 사용하려고하면 일반 숫자처럼 작동합니다. 따라서 다음 코드는 100000000000000000000 100000000000000000000을 볼 때 100000000000000000000 1e+20 을 인쇄합니다.범위에서 perl bigint 사용

가 어떻게 올바른 방법으로이 코드 동작합니다을 할 수

use warnings; 
use strict; 
use bigint; 

for my $b(10) { 
    for my $c(20) { 
     print $b**$c, "\n"; 
    } 
} 

for my $b(10..10) { 
    for my $c(20..20) { 
     print $b**$c, "\n"; 
    } 
} 
? 나는 Math :: BigInt에 대해서 알고 있지만, 그것 없이는 해결책이 있는지 궁금해.

+0

코드는 당신이 의지 출력을 한 줄에 하나씩 수없는 두 가지를 제공했다. 그리고 코드는'$ _ '을 전혀 사용하지 않습니다. 귀하의 코드 또는 귀하의 질문을 편집하여 귀하의 코드가 귀하의 질문에 대해 이야기하고있는 것을 보여주십시오. – mob

답변

0

정확한 이유는 모르지만 아래 링크는 정확한 값을 인쇄하는 데 도움이됩니다. 제어 문자열 길이를 가져 와서 값을 인쇄하십시오.

Perl - Remove trailing zeroes without exponential value

+0

귀하의 링크를 가져 주셔서 감사합니다,하지만 그건 내가 원하는 것만은 아닙니다. '1e + 20'으로 표시되는 값은 유한 정밀도를 가진 부동 소수점 수이지만 정확한 정수는 아닙니다. 정확한 값을 얻고 싶지만 다른 방법으로 인쇄하지는 않습니다. –