본문 바로가기

헛공부

-1.#IND


 

사용자 삽입 이미지

<그림 1. –1.#IND가 출력된 화면.>


double연산을 하다 보면, 가끔 출력이 제대로 안 되고

-1.#IND라는 것이 출력될 때가 있다.

이게 뭐지? 하고 찾아봤는데,

이런 이런, 이놈의 MSDN은 제대로 설명이 안 나온다.(이것도 포럼 뒤지면 나오겠지만.)

에 역시 그러면 구글신님이다 싶어, 검색해보니,

아뿔사. -, .,#은 구글 검색에서 제외되고,

남은게 1하고 IND인데, 제대로 나오는 게 없더라

뭐 그래도 계속 찾아보니 결과는 나왔다.

내 성격에 꽤나 자주 할 실수 같으니 잊어 먹지 않도록 적어놔야지.


예상은 했지만 생각보다 좀 황당하다.

답은 NaN (Not a Number) 즉 숫자가 아니다. 표시할 수 없는 숫자. 이런 게다.

그래서 double 주제에 NaN이 되는 숫자가 뭔가 했는데,

1. 초기화 되지 않은 숫자, (IND가 indefinite를 나타낸다고 함.)

2. 무한대. infinity, 예를 들어 0으로 나눈 경우


그런데 –1.IND가 되는 경우는 1번 뿐이고,

2번의 경우에는 –1.INF가 나온다고 한다.

(적어도 MS 컴파일러에 한해서는)


2번의 경우 숫자가 너무 커 표시할 수 없는 경우에도 나타난다고 한다.



꼬리: double의 한계는 1e+308정도라고 한다.


역시 외국사이트에 답이 다 있어 허허.

믿거나 말거나~


Tistory 태그: ,,