⌨️ 학습

JavaScript Numbers are Always 64-bit Floating Point!

Unlike many other programming languages, JavaScript does not define different types of numbers, like integers, short, long, floating-point etc.

프로그래머스 멀쩡한 삼각형 : https://programmers.co.kr/learn/courses/30/lessons/62048

을 풀다가 자꾸 테스트 케이스 6번만 안되는 문제상황에 직면했다.

처음에는 내가 예외 상황을 고려하지 않고 답안을 작성했는지 고민하다가 자바스크립트의 소수점 계산 방식을 고려하지 않은 로직을 짰다는 것을 깨달았다.

자바스크립트 소수점 표기 는 항상 정확하지 않다.

그 이유는 자바스크립트에서의 수는 항상 64비트 floating point 이기 때문! 즉 정확하게 표기할 수 있는 수가 한계가 있다는 말이다.

정수는 15자리까지 정확하게 표기할 수 있다고 한다.

그러면 소수는? 반드시 정확하지는 않다고 한다.
실제로 0.1 + 0.2 가 0.3이 아닌 0.30000000000000004 임을 확인할 수 있었다.

어라...? 그러면 코드를 짤 때는 어떻게 짜야하지?

10을 곱해서 정수로 바꿔주고 다시 나눠주면 된다!

💻 회고

자바스크립트라는 언어는 굉장히 심오하고 재미있는 언어라는 것을 다시 한 번 깨달았다.

자바스크립트에서의 자료형에 대해 다시 한 번 살펴볼 수 있는 기회가 되었다.

다음에는 또 실수하지 말고, 소수점 계산을 할 때는 조심해야지!

profile
인사이트 있는 개발자가 되고 싶어요

0개의 댓글