Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript의 Number.EPSILON 속성 이해하기

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은 부동 소수점 연산의 미세한 오차를 처리할 때 유용하게 사용되는 상수입니다.