Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 '부동 소수점 연산'이 100% 정확합니까?


부동 소수점 연산 자바스크립트에서 항상 100% 정확하지는 않습니다. 1/3, 즉 0.33333.....을 가정해 보겠습니다. 여기에서 값 0.333....은 알 수 없는 지점에서 반올림됩니다. 따라서 값이 10진수인 다른 값과 함께 추가하면 의도한 결과를 얻지 못합니다. 따라서 소수점 이하 두 개를 더하면 반올림 오류가 발생한다는 결론을 내릴 수 있습니다. , 하지만 다행히도 이러한 오류는 실제 코드 결과에 영향을 미치지 않을 정도로 매우 작습니다.

다음 예에서 0.3에 0.6을 더하면 결과는 0.9여야 하지만 반올림 오류가 있기 때문에 결과 값은 출력에 표시된 대로 의도된 값이 아닙니다.

예시

<html>
<body>
   <p id="F-P-A"></p>
   <script>
      var err = 0.3 + 0.6;
         document.getElementById("F-P-A").innerHTML = "0.3 + 0.6 = " + err;
   </script>
</body>
</html>

출력

0.3 + 0.6 = 0.8999999999999999


다음 예에서 0.2와 0.1이 추가되었을 때 의도한 결과는 0.3이지만 반올림 때문에 g 오류 , 의도한 값이 결과 값이 아닙니다.

예시

<html>
<body>
   <p id="F-P-A"></p>
   <script>
      var err = 0.2 + 0.1;
      document.getElementById("F-P-A").innerHTML = "0.2 + 0.1 = " + err;
   </script>
</body>
</html>

출력

0.2 + 0.1 = 0.30000000000000004