728x90
자바 스크립트 에서 숫자 타입은 배정밀도 64비트 부동소수점 형식 2진수 로 저장이 됩니다.
Ex)
console.log(0.2 + 0.4 === 0.6); // false
console.log(0.2 + 0.4); //0.6000000000000001
컴퓨터는 2진법 사용하여 값을 저장한다.
=> 10 진법으로 표현된 수를 2 진법으로 변환 시 64 비트를 초과하는 무한소수가 발생할 수 있다.
컴퓨터는 해결하기 위해 근사치로 표현하다 보니 미세한 값들이 초과하여 차이가 발생 (정밀도 문제)
배정밀도 란?
64 비트 를 사용하는 것 cf) 비교 군으로 단정밀도 (32 비트를 사용하는 것) 이 있다.
부동 소수점 (떠돌이 소수점) 이란 ?
컴퓨터에서 실수를 표현 시 소수점의 위치를 고정하지 않고, 위치를 나타내는 수를 따로 적는 것으로, 유효숫자를 나태내는 가수와 소수점 위치를 풀이하는 지수로 나누어 표현하는 식이다.
Cf) 해결 법
반올림 함수를 사용
toFixed() // 파라미터 안에는 소수점 자리 수가 들어간다.
728x90
'FrontEnd > JavaScript' 카테고리의 다른 글
이스케이프 시퀀스 (escape sequence) (0) | 2022.11.24 |
---|---|
단항 (덧셈, 부정) 연산자 (+) (0) | 2022.11.24 |
변수 / 상수 (0) | 2022.11.15 |
Use Strict (0) | 2022.11.14 |
재귀 함수 (0) | 2022.11.06 |