0.1 + 1.1 = 1.2 가 false인 이유

재인·2022년 8월 14일
3

당연히 0.1 + 1.1 = 1.2 가 나오고, true가 나올줄 알았지만 결과는 false다.
이러한 결과가 나오는 이유는

컴퓨터가 실수를 저장할 때, 지수부와 가수부로 나누어 저장하게 되기 때문이다.

가수부 : 실수의 실제 값
지수부 : 크기 표현, 가수의 어디쯤에 소수점이 있는지 보여줌
지수의 값에 따라 소수점이 움직이는 것이기 때문에 이것을 부동소수점이라고 부른다.

예를 들어 분수 1/3 은 소수로 나타냈을 때 0.333333... 이 나온다.
이러한 무한 소수들은 정확한 값이 아닌 근사치에 가까운 값이 나오게 된다.

이것을 해결하기 위한 방법 (JavaScript)

1. toFixed() 메서드 사용

입력받은 숫자를 매개변수 만큼 반올림해 String으로 반환

2. Math.round() 메서드 사용

0개의 댓글