안전한 정수(Safe Integer)란?
안전한 정수는 IEEE-754 배정밀도 부동소수점 숫자로 오차 없이 정확하게 표현할 수 있는 정수를 의미합니다. JavaScript에서 안전한 정수의 범위는 -(2⁵³ - 1)부터 (2⁵³ - 1), 즉 -9007199254740991부터 9007199254740991까지입니다.
이 범위를 벗어나는 정수는 연산 과정에서 정확성이 보장되지 않으므로, 특히 큰 숫자를 다룰 때는 값이 안전한 정수인지 반드시 확인해야 합니다.
Number.isSafeInteger() 메서드 사용하기
JavaScript에서 값이 안전한 정수인지 확인하려면 Number.isSafeInteger() 메서드를 사용하세요. 이 메서드는 전달된 값이 안전한 정수이면 true를, 그렇지 않으면 false를 반환합니다.
예제 코드
<!DOCTYPE html>
<html>
<body>
<script>
document.write("Checking for Safe Integer...");
document.write("<br>"+Number.isSafeInteger(765));
document.write("<br>"+Number.isSafeInteger(-765));
document.write("<br>"+Number.isSafeInteger('765'));
document.write("<br>"+Number.isSafeInteger(false));
document.write(Number.isSafeInteger(Math.pow(2, 53) - 1));
</script>
</body>
</html>실행 결과
Number.isSafeInteger(765)→ true (양의 안전한 정수)Number.isSafeInteger(-765)→ true (음의 안전한 정수)Number.isSafeInteger('765')→ false (숫자가 아닌 문자열)Number.isSafeInteger(false)→ false (불리언 값)Number.isSafeInteger(Math.pow(2, 53) - 1)→ true (안전한 정수의 최댓값)
정리
Number.isSafeInteger()는 숫자 타입 여부와 안전한 정수 범위 내에 있는지를 동시에 검사합니다. 따라서 숫자형 데이터의 신뢰성을 검증할 때 유용하게 활용할 수 있습니다. 참고로 안전한 정수의 최댓값과 최솟값은 각각 Number.MAX_SAFE_INTEGER와 Number.MIN_SAFE_INTEGER 상수로도 확인할 수 있습니다.