다음 SAS 코드 : 나는 첫 번째 15 ~ 16 개 자리가 신뢰할 수 있음을 이해하지만, 왜이 기본 다른 주는가SAS에서 과학 표기법의 숫자 리터럴이 명시 적으로 쓰여지는 숫자와 다른 숫자를주는 이유는 무엇입니까?
10000000000000000905969664 9999999999999998758486016
diff
: 내 Windows 시스템 인쇄 밖으로
data _null_;
format t u best32.;
t = 10000000000000000000000000;
u = 1e25;
put t u;
if t ne u then put 'diff';
run;
숫자? SAS 컴퓨팅 1e25는 어떻습니까?
편집 : 10의 다른 제곱에 대한 출력을 1e25까지 제공하도록 요청 받았습니다. 다음 프로그램 :
%macro doit;
data _null_;
format t u best32.;
%let t=1;
%do i=1 %to 25;
%let t=&t.0;
t = &t;
u = 1e&i;
put t u;
%end;
run;
%mend;
%doit;
는 다음과 같은 출력을 제공합니다 : 실제로 1 * 10 * 10 ... * 10
을 계산 할 수 있으며 오류가 당신이 비트의 상당수에 넘어 얻을 즉시에 들어온다처럼
10 10
100 100
1000 1000
10000 10000
100000 100000
1000000 1000000
10000000 10000000
100000000 100000000
1000000000 1000000000
10000000000 10000000000
100000000000 100000000000
1000000000000 1000000000000
10000000000000 10000000000000
100000000000000 100000000000000
1000000000000000 1000000000000000
10000000000000000 10000000000000000
100000000000000000 100000000000000000
1000000000000000000 1000000000000000000
10000000000000000000 10000000000000000000
100000000000000000000 100000000000000000000
1000000000000000000000 1000000000000000000000
10000000000000000000000 10000000000000000000000
99999999999999991611392 99999999999999991611392
999999999999999983222784 999999999999999983222784
10000000000000000905969664 9999999999999998758486016
나는 내 숫자의 길이를 제한하지 않습니다. 길이는 8 비트 (64 비트)입니다. –
저는 10의 다른 제곱의 값을 제공하기 위해 질문을 편집했습니다. –