JavaScript #소수점계산

낭만개발자·2021년 3월 13일
0

JavaScript

목록 보기
1/14
let a = 0.1 
let b = 0.2

a+b = 0.30000000000000...4 로  뜸. 

이유 : 10진수서 2진수로 항상 변화해주는데 (js엔진이) 소수같은 경우는 무한소수가 2진법으로 변경할때 무한 소수가 된다고 한다(이유는 모름..)

해결 : 따라서 .toFixed() 메서드를 쓰거나..(요건 변수화 시켜서 사용해야 함 계산식에는 못쓰더라.. 파라미터는 1 넣으면 소수 1자리까지 표현해라는 뜻..)
또는 Math.round() : 정수로 반올림 하는 함수 사용해도 됨

Math.round((a+b) * 10) / 10 

하면 되는데, Math.round((a+b) 10) 해주면 (0.1 + 0.2) 10 = 3.0000...4 가 나오는데, 여기서 Math.round()로 반올림 해주면 3만
남게 되는 원리다.

toFixed()는 주의사항이 string이 return 되므로 Number로 숫자 변환이 필요하다. round가 더 편할듯

참고 블로그 : https://bigtop.tistory.com/47

profile
낭만닥터와 슬의를 보고 저런 개발자가 되어야 겠다고 꿈꿔봅니다.

0개의 댓글