본문 바로가기

javascript

자바스크립트 숫자


자바스크립트는 숫자를 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