더북(TheBook)

9.2.2 숫자형

자바스크립트는 정수와 실수를 구분하지 않고 전부 하나의 숫자 자료형(숫자형)으로 취급합니다. 예를 들어, 10이나 0.1이나 자바스크립트는 같은 숫자형입니다.

09/02/number_type.js

let num1 = 10;
let num2 = 0.1;
console.log(num1);
console.log(num2);

실행결과

10
0.1

다만, 실수를 사용할 때는 주의해야 합니다. 자바스크립트는 실수를 부동 소수점 방식으로 표현하는데, 실수를 부동 소수점 방식으로 표현하면 실수 계산이 정확하지 않습니다.

다음 코드처럼 실수 0.1과 0.2를 합한 결과를 sum 변수에 할당해서 출력한다면 어떨까요? 당연히 0.3이 출력될까요? 코드를 실행해 보면 전혀 다른 결과가 나옵니다.

09/02/number_type_add.js

let sum = 0.1 + 0.2;
console.log(sum);

실행결과

0.30000000000000004

따라서 실수를 계산하는 프로그램을 만들 때는 이 점을 고려해야 합니다.

수코딩의 조언

컴퓨터는 모든 데이터를 0과 1의 이진수로 표현하기 때문에 프로그래밍 언어에서 실수를 표현하는 방법은 항상 골칫거리입니다. 소수점이 있는 실수도 정수처럼 이진수로 표현해야 하기 때문이죠. 그래서 컴퓨터에서 실수를 표현하기 위한 여러 방식이 연구됐습니다. 그중에서 가장 많이 사용하는 방식은 고정 소수점 방식과 부동 소수점 방식인데, 자바스크립트는 부동 소수점 방식으로 실수를 표현합니다. 고정 소수점과 부동 소수점을 완전히 이해하려면 수학 지식이 필요하므로 여기서는 자세히 설명하지 않습니다. 다만, 부동 소수점 방식으로 실수를 표현하는 프로그래밍 언어는 항상 실수 계산이 정확하지 않다는 점만 기억해 주세요.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.