작성
·
371
0
좋은 내용의 강의 감사드립니다.
64비트 부동소수점 강의 내용의 정리에 대해 질문남깁니다.
1.
결국 js는 number를 int, float에 관계없이 64비트 부동소수점의 형태로 다루고 이로 인해 소수점 연산에 대해 오차가 발생할 수 있다(구체적으로 가수부 제한인 52비트를 넘는 경우).
이를 보기 위해 주어진 소수(0.1과 0.2)를 2진수로 고쳐 연산을 하고 10진수로 고쳐서 그 예시를 들었다.
라고 이해를 하였는데 제대로 이해한게 맞을까요?
2진법으로 표현된 숫자에 대해 10진법으로 고치기 위해 0이하의 숫자에 대해 Math*pow(2, -55)한 원리가 궁급합니다.
감사합니다.
답변 1
0
아래와 같이 답변을 드립니다.
지금 이해하고 계신 내용이 맞습니다.
2진법을 10진법을 고치기 위해서 0이하의 숫자 자리수가 55자리입니다. 그래서 0이하의 2진수를 parseInt("0이하의 2진수",2) 정수로 바꾸고 여기에 pow(2,-55) 곱하는데요, pow 함수의 두번째 파라미터가 음수이면 1/2^55 로 계산이 되어서 정수를 다시 소수점을 만들게 됩니다.