본문 바로가기
programming/javascript

자바스크립트 숫자 Infinity 무량대수 표현 javascript number

by 개코 - 개발과 코딩 2021. 11. 30.

자바스크립트는 숫자 데이터 중 Infinity 가 있다. 무량대수를 표현하며, 자바스크립트에서 표현할 수 없는 가장 큰 수는 Infinity 를 결과로 보여준다. 자바스크립트도 사칙연산에 대해 버틸 수 없는 숫자에 대한 별도의 처리를 하고 있음을 알 수 있다.

자바스크립트 숫자 Infinity
무량수 표현 javascript number

컴퓨터는 데이터용량의 한계가 있다.

수치표현할 때 그런 경우들이 있는데 자릿수가 늘어날 때가 그렇다.

뭐 그런 큰 수를 표현할 경우는 극히 드물겠지만 어쨌든 숫자계산시 오류가 나는 경우는 파악해 볼 필요가 있다.

수치표현을 하지 못하는 경우 NaN 이란 숫자데이터가 있지만 자바스크립트는 Infinity 숫자데이터를 결과로 보여준다.

Infinity 무량대수

컴퓨터의 성능이 아무리 좋다고 해도 메모리에는 한계가 있고, 연산에도 한계는 있다.

그렇기에 자바스크립트는 무량대수에 대한 숫자데이터를 가지고 있는데 그것이 Infinity 이다.

Infinity 는 눈으로 볼 때 문자료 표현되지만 자바스크립트는 숫자데이터로 처리한다.

그럼 Infinity 데이터는 무엇이냐.

자바스크립트에서 Infinity 는 컴퓨터가 처리할 수 있는 가능한 가장 큰 수를 말한다.

처리범위를 넘어갈 때 발생하는 숫자 데이터이다.

샘플코드

Infinity 를 볼 수 있는 경우가 얼마나 있겠냐 하겠지만, 유통, 물류, 은행권에서는 아마도 볼 수 있을 수 있다.

하루에 쌓이는 숫자형 누적 데이터가 빠르게 저장되고 사칙연산을 하고 있기 때문.

하지만, 자바스크립트에서 처리하는 것은 아니니 걱정은 하지 말자.

속된 말로 자바스크립트 개발하면서 Infinity 를 볼 수 있는 날이 얼마나 될까?

어쨌든 코드를 만들어 본다.

<!DOCTYPE html>
<html>
    <body>

        <h2>자바스크립트 숫자형</h2>
        <div id="cont">
            <p id="ret1"></p>
            <p id="ret2"></p>
            <p id="ret3"></p>
        </div>

        <script>
            
            console.log("----------");
            
            let lpNum = 100;

            while(lpNum != Infinity) {

                lpNum *= 100;
                console.log(typeof(lpNum), lpNum);

            }

            console.log("----------");

            let vNum

            vNum = 100;
            vNum = vNum / 0;
            console.log(typeof(vNum), vNum);
            document.getElementById("ret1").innerText = (typeof(vNum ) + " , " + vNum)

            vNum = -100;
            vNum = vNum / 0;
            console.log(typeof(vNum), vNum);
            document.getElementById("ret2").innerText = (typeof(vNum ) + " , " + vNum)

            console.log("----------");

        </script>

    </body>
</html>

하나는 반복문을 통해 100을 곱해 주었다.

다른 하나는 0으로 나누어 주었다.

수학에서 0으로 나누는 개념은 오류이다.

자바스크립트에서 0 으로 나눈다면 Infinity 결과를 볼 수 있기도 하다.

어쨌든 결과화면을 보자.

반복문의 경우 한없이 100 으로 곱해지다가 Infinity 결과를 표시한 후 중단되었다.

숫자를 0으로 나누어도 결과는 마찬가지이다.

음수와 양수에 대한 표현이 가능하기에 NaN 과 함께 검증처리를 할 경우 별도의 코딩이 필요할 수 있다.

눈으로 보는 것은 문자열이지만 내부적인 처리는 숫자형인 number 라는 것은 기억해 두자.

반응형

댓글