2013-05-21 2 views
2

이유는 무엇입니까R의 포맷 기능은

format(4444444444444444444,scientific=FALSE) 

반환 "4444444444444444672"이상한 결과를 반환?

정수 정밀도 일 수도 있지만이 수치는 상대적으로 작습니다. 감사!

우분투 리눅스에서 R 버전 3.0.0을 실행 중입니다. 당신이보다 큰 정수 R을주는 경우에

답변

5

는 :

> .Machine$integer.max 
[1] 2147483647 

이 이중으로 변환합니다. R-FAQ has 7.31. 부동 소수점의 정확도에 관한 질문에 SO 흔히 발생 : 벡터 인덱스 Controlling number of decimal digits in print output in R

(크기는 R (3.0.0의 최종 버전으로 증가)하고 정수에 대한 최대 크기로 확대 될 수 있다는 가능성이 보이고 미래. 나는 정수의 크기에 대한 제한을 유지하고 더 큰 벡터 인덱스에 액세스하는 방법을 잘 모르겠다.)

4

이것은 32 비트 정수가 아닙니다.

R> as.integer(4444444444444444444) 
[1] NA 
Warning message: 
NAs introduced by coercion 

그것은 오직 정밀의 15 ~ 16 곳이 포인트 번호를 배정 밀도 부동입니다. 숫자가 .Machine$integer.max보다 커서 위의 오류가 발생합니다. ...672은 반올림 오류입니다. 큰 숫자를 사용해야 할 경우 gmp과 같은 패키지를 고려하십시오.