자바스크립트는 숫자를 IEEE 754표준에 의해 정의되는 64비트 실수 형식을 사용하여 표현한다.
따라서 ±1.7976931348623157 X 10 308승 만큼 크고 ±5자 X 10 -324승 만큼 작은 숫자를 표현할 수 있다.
(단 32비트의 경우는 조금 다를 수 있으며 표1과 같이 MAX_VALUE, MIN_VALUE를 이용하여 확인하면 된다.)
자바스크립트는 표현 가능한 유한 수보다 더 큰 값은 무한대를 나타내는 특수한 값 Infinity로 출력되며
비슷하게 음수 값의 경우는 -Infinity로 출력한다.
또한 수리연산(0/0과 같은 경우)이 정의되지 않은 결과를 산출하거나 에러를 발생시킬 경우에는 NaN이라고 출력한다.
표1 자바스크립트의 특수한 숫자 상수표
상수 | 의미 |
Infinity | 무한대를 나타내는 특수한 값 |
NaN | 숫자가 아닌 특수한 값 |
Number.MAX_VALUE | 표현 가능한 가장 큰 수 |
Number.MIN_VALUE | 표현 가능한 (0에 가까운) 가장 작은 수 |
Number.NaN | 숫자가 아닌 특수한 값 |
Number.POSITIVE_INFINITY | 양의 무한대를 표현하는 특수한 값 |
Number.NEGATIVE_INFINITY | 음의 무한대를 표현하는 특수한 값 |
//NaN & Infinity출력 테스트
function NumberTest()
{
alert(0/0); //그림1 NaN출력
alert(999999........생략(^^;)..999 *9999999); //그림2 Infinity
}
그림1 그림2
자바스크립트는 위와 같은 Error를 먼저 검증, 확인할 수 있는 함수를 제공한다.
isNaN()과 isFinite()이다.
isNaN()함수는 수리연산이 정의되지 않은 결과를 산출하거나 에러를 발생시키는지를 확인한다.
isFinite()함수는 주어진 숫자가 NaN이 아닌 동시에 양의 무한대나 음의 무한대가 아닌지 여부를 검사한다.
//isNaN()테스트
function NumberTest()
{
var num = 0/0;
if(isNaN(num)) //지원되지 않는 연산이면 true
alert("이상해요");
else //지원되는 연산이면 false
alert("좋아요");
}
//isFinite()테스트
function NumberTest()
{
var num = 999999...생략...9*99999;
if(isFinite(num)) //유한수이면 true
alert("좋아요");
else //무한수이면 false
alert("이상해요");
}
'javascript' 카테고리의 다른 글
자바스크립트 문자열 (0) | 2011.02.16 |
---|---|
jQuery 1.5 Released (0) | 2011.02.06 |
jQuery로 Ajax 개발을 단순화 하기 (0) | 2011.01.27 |