[javascript] Infinity와 NaN의 부동 소수점 연산

자바스크립트에서 부동 소수점 연산에 대해 이해하는 것은 중요합니다. 부동 소수점은 정수를 다루기 위한 것보다 복잡합니다. 이 게시물에서는 InfinityNaN에 대해 알아보고, 부동 소수점 연산 시 유용한 정보를 제공합니다.

Infinity와 -Infinity

Infinity는 무한대를 나타내는데 사용됩니다. 양의 무한대, 즉 어떠한 숫자보다도 크다는 것을 의미합니다. 반면, -Infinity는 음의 무한대를 나타내며, 어떠한 숫자보다도 작다는 것을 의미합니다.

예를 들어:

console.log(Infinity); // 무한대를 출력
console.log(10 / 0); // Infinity를 출력

NaN (Not a Number)

NaN은 부동 소수점 연산 중 발생하는 에러나 정의되지 않은 연산의 결과를 나타냅니다. 다음과 같이 NaN을 생성할 수 있습니다:

console.log(0 / 0); // NaN을 출력
console.log(Math.sqrt(-1)); // NaN을 출력

부동 소수점 연산 시 주의사항

부동 소수점 연산은 정수 연산과 다르기 때문에 주의해야 합니다. 예를 들어, 부동 소수점 연산 시 나타날 수 있는 반올림 에러를 주의해야 합니다:

let sum = 0.1 + 0.2;
console.log(sum); // 0.30000000000000004를 출력

정의되지 않은 경우 처리

만약 NaN이 생성된다면, 해당 값을 사용하기 전에 확인하는 것이 중요합니다. 이러한 경우를 처리하기 위해 isNaN() 함수를 사용할 수 있습니다:

let result = 10 / 'apple';
if (isNaN(result)) {
  console.log('결과는 숫자가 아닙니다');
} else {
  console.log('결과: ' + result);
}

자바스크립트에서 InfinityNaN에 대한 개념을 이해한다면, 코드를 더욱 안정적으로 작성할 수 있을 것입니다.

참고 자료

  1. MDN web docs - Infinity
  2. MDN web docs - NaN

부동 소수점 연산에 대한 자세한 정보는 MDN web docs에서 확인할 수 있습니다.