2014-12-11 4 views
1

나는 R의 초보자이며 몇 가지 관련 질문을 읽었지만 여전히 다음과 같은 문제가 있습니다. 두 개의 숫자 => 0.6942181641427924709831 및 0.6942181641427929150723이 있습니다. 첫 번째 것은 계산의 결과이고 두 번째는 주어진/정의됩니다. 나는 그 숫자들과 일해야만하지만 그들은 똑같을 필요가있다! 나는 방금 R에서 소음에 대해 읽었다. 아마 여기의 경우 일까?소문자 소수 자릿수 소문자로 자릿수/자릿수 자릿수로 자릿수를 자름

예를 들어. 그들이 여전히 동등한 소수점 15 자리? 반올림은 번호 자체를 변경하지 않기 때문에 작동하지 않습니다. 단, R이 무엇을 보여줄지 ...

답장을 보내 주셔서 감사합니다 !!

+0

정확한 평등은 pipedream, 또는 적어도 특별한 도구가 필요합니다. FAQ 7.31 를 보시고 Goldberg 문서에 대한 링크를 따라주십시오 . 왜 숫자가 정확히 22 유효 숫자와 같아야합니까? – user20637

답변

2

차이의 절대 값이 특정 임계 값 미만인지 확인하여 이러한 종류의 "거의 동일한"비교를 수행 할 수 있습니다.

x <- 0.6942181641427924709831 
y <- 0.6942181641427929150723 
x == y 
# [1] FALSE 
abs(x-y) < 1e-15 
# [1] TRUE 

all.equal 기능이 이미 내장 된이 편리하게 허용 : 정확도의 수준에서

all.equal(x, y) 
# [1] TRUE