2014-07-10 5 views
-2

double 값이 0.085NSNumber을 만들면 추가 정밀도가 숫자에 추가됩니다. 그러나 0.85의 경우는 그렇지 않습니다. 나는 이것이 왜 그런지 이해하지 못한다. 그러나 나는 정말로 명백한 대답이있을 것이라고 확신한다. 아무도 이유를 아나요? 예를 들어부동 소수점의 부정확함

은 :

NSNumber *n1 = [NSNumber numberWithDouble:0.85]; 
NSNumber *n2 = [NSNumber numberWithDouble:0.085]; 

NSLog(@"Number: %@", n1);  // Number: 0.85 
NSLog(@"Number: %@", n2);  // Number: 0.08500000000000001 
+3

http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html –

+0

@HotLicks이 질문에는 아무런 문제가 없으며 누군가가 전체를 알아야한다는 요구 사항이 없습니다. 언어를 사용하여 질문을 게시하십시오. –

+0

@AirsourceLtd - 어쩌면 아니지만 그가 질문에 타이핑 할 때 "Ask Question"페이지에서 제시 한 20 대 정도의 속이는 중 하나를 선택 했어야합니다. –

답변

3

이것은 double보다는 NSNumber 관련이있다. doublefloating-point number 값이고 특정 수준 에 정확한 소수점 숫자는으로 제공되지 않습니다.

관련 문제