Number.EPSILON은 JavaScript Number 객체의 정적 속성으로, 숫자 1과 1보다 큰 부동 소수점 수 중 가장 작은 값 사이의 차이를 나타냅니다. 그 값은 약 2.220446049250313e-16이며, IEEE 754 배정밀도 부동 소수점 방식에서 표현할 수 있는 가장 작은 오차 한계를 의미합니다.
Number.EPSILON이 필요한 이유
JavaScript는 내부적으로 부동 소수점 방식을 사용하기 때문에 일부 연산에서 미세한 오차가 발생합니다. 예를 들어 0.1 + 0.2의 결과는 정확히 0.3이 아니라 0.30000000000000004가 됩니다. 따라서 두 실수를 비교할 때 === 대신 허용 오차 범위를 두고 비교하는 것이 안전하며, 이때 기준값으로 Number.EPSILON을 활용할 수 있습니다.
문법(Syntax)
사용 문법은 다음과 같습니다.
Number.EPSILON
이 속성은 읽기 전용(read-only)이며, 별도의 매개변수 없이 바로 참조하여 사용합니다.
예제(Example)
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var result = Number.EPSILON;
document.write("엡실론 값 : " + result);
</script>
</body>
</html>
출력(Output)
엡실론 값 : 2.220446049250313e-16
활용 예시: 부동 소수점 비교
다음과 같이 Number.EPSILON을 활용하면 부동 소수점 오차를 고려한 안전한 비교가 가능합니다.
function numbersAlmostEqual(a, b) {
return Math.abs(a - b) < Number.EPSILON;
}
console.log(0.1 + 0.2 === 0.3); // false
console.log(numbersAlmostEqual(0.1 + 0.2, 0.3)); // true
이처럼 Number.EPSILON은 부동 소수점 연산의 미세한 오차를 처리할 때 유용하게 사용되는 상수입니다.