JavaScript | 반올림시 부동소수점 연산 오류 해결방법
페이지 정보
- 작성자:
- 핵탐
- 작성일
- 10.23 15:03
- 조회
- 3,732
- 댓글
- 0
본문
0.25375 를 소수점 4자리로 만들어야 했다.
const num = Math.round(0.25375 * 10000) / 10000
이렇게 해서 기대하는 결과는 0.2538 이었다.
그런데 0.2537 이 나온다.
이게 무슨일인가 싶어 크롬 개발자도구에 곱하기 연산만 해보았다.
???? 뭐지?
검색해 보니 자바스크립트는 IEEE 에서 제정한 부동소수점 표현방식 IEE754문제로 소수점연산에 문제가 발생한다고 한다.
다시 검색해서 해결방법을 찾았다. 아래와 같다.
(0.25375 + Number.EPSILON) * 10000
Number.EPSILON 의 값은 2.220446049250313e-16 인데 이것이 무엇인지는 나중에 좀 더 알아봐야겠다. 시간이 없어 ㅜㅜ
다행히 결과는 잘 나온다.
댓글 0개
등록된 댓글이 없습니다.