문서:NaN

역사 raw
대문 랜덤 문서 최근 토론


1. 개요2. 필요성3. 각종 언어에서의 NaN


1. 개요

NaN(Not a Number)은 잘못된 입력으로 인해 계산을 할 수 없음을 나타내는 기호이다. 이를테면 음수의 제곱근을 구하려고 한다거나, 일부 언어에서는 0으로 나눈 몫을 구하려고 할 때 ``Division by Zero``대신 NaN을 반환하기도 한다. 이는 실수만을 저장할 수 있는 기본 부동소수점 저장체계에는 저장할 수 없는 허수나 실존하지 않는 수를 저장할 수 없기 때문에 오류 대신 반환하는 리턴값이다.

2. 필요성

어떤 사람은 NaN 대신 예외를 던지는게 더 나을 것이라고 생각할 수도 있다. 하지만 꼭 그런것만은 아닌게 사용자가 입력을 한 값을 프로그램의 알고리즘에 대입을 했을 때 개발자가 예상치 못한 오류는 항상 생길 수 있으며 그럴 때마다 프로그램이 오류를 뿜으려 종료되는 것은 좋지 못하기 때문에 일단 프로그램은 잘 돌아가도록 NaN을 반환하는게 이득일 때도 있다.

3. 각종 언어에서의 NaN

Console.WriteLine(Math.Sqrt(-3));
Console.WriteLine(double.NaN);
 
[1] 다음 두 줄의 코드는 모두 NaN을 출력한다.