0.1 + 1.1 === 1.2
의 결과는 false 이다.
그 이유는
컴퓨터가 실수를 저장할 때, 지수부와 가수부로 나누어 저장하게 되기 때문.
자바스크립트에서 숫자는 '64 비트 IEEE 754 형식'으로 다뤄지는데,
그 형식으로 표현된 0.1은 정확히 0.1과 같은 수가 아닌 0.1에 가장 가까운 2진법으로 표현 가능한 수이다. . .
가수부 : 실수의 실제 값 지수부 : 크기 표현, 가수의 어디쯤에 소수점이 있는지 보여줌 지수의 값에 따라 소수점이 움직이는 것이기 때문에 이것을 부동소수점이라고 부른다.
예를 들어 분수 1/3 은 소수로 나타냈을 때 0.33333… 이 나온다.
이러한 무한 소수들은 정확한 값이 아닌 근사치에 가까운 값이 나오게 된다.
1. 0.1 + 0.2
참고 : https://velog.io/@jaein0304/0.1-1.1-1.2-가-false인-이유
0.1 + 1.1 = 1.2 가 false인 이유
당연히 0.1 + 1.1 = 1.2 가 나오고, true가 나올줄 알았지만 결과는 false다.이러한 결과가 나오는 이유는 컴퓨터가 실수를 저장할 때, 지수부와 가수부로 나누어 저장하게 되기 때문이다.가수부 : 실수
velog.io
부동 소수점은 이 쪽을 참고해 보자.
부동 소수점 실수 탐구 in JavaScript by sgyoon
부동소수점 실수 탐구 in JavaScript
자바스크립트에서 사용하는 64비트 IEEE 754 형식에 대해 알아보았다.
velog.io
[JS] 소수점 계산 오류 해결법 (부동 소수점)
자바스크립트(javaScript)의 소수점 연산에서 오류가 발생했다. var a = 0.1; var b = 0.2; console.log(a + b); // 0.30000000000000004 0.3을 예상했지만 0.30000000000000004가 출력됬다. 원인 자바스크립트(javaScript)뿐만
joonpyo-hong.tistory.com