Javascript의 toFixed() 메소드가 정확하게 반올림되지 않는 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2024-10-22 15:07:03
원래의
836명이 탐색했습니다.

Why is Javascript's toFixed() Method Not Rounding Accurately?

Javascript toFixed가 정확하게 반올림되지 않음

Javascript에서 toFixed() 메소드는 숫자를 문자열로 형식화하는 데 사용됩니다. 그러나 사용자는 이 방법을 사용할 때 특히 숫자를 올바르게 반올림하지 못하는 경우 예상치 못한 반올림 동작을 경험했습니다.

이 반올림 불일치의 원인은 Javascript에서 사용하는 기본 부동 소수점 산술에 있습니다. 부동 소수점 숫자는 특히 매우 작거나 매우 큰 값으로 작업할 때 정밀도 오류가 발생할 수 있습니다.

이 문제를 해결하려면 다음 해결 방법을 고려하세요.

제공된 솔루션에서는 보다 정확한 반올림을 보장하는 원래 toFixed() 메서드의 수정된 버전인 toFixed10() 메서드를 사용할 것을 제안합니다. 이 방법은 숫자를 소수점 이하 10자리로 반올림하는데, 이는 대부분의 실제 애플리케이션에 충분히 정확합니다.

이 솔루션에는 Math.round() 및 Math.pow를 사용하여 유사한 반올림을 수행하는 사용자 정의 toFixed() 함수도 포함되어 있습니다. () 방법. 이 기능을 사용하면 원하는 정밀도를 지정하여 브라우저 전반에 걸쳐 일관된 결과를 보장할 수 있습니다.

구현

수정된 toFixed() 메소드 또는 사용자 정의 함수를 Javascript에 통합하여 코드를 사용하면 반올림 문제를 효과적으로 해결하고 정확한 수치 계산을 얻을 수 있습니다.

function toFixed( num, precision ) {
    return (+(Math.round(+(num + 'e' + precision)) + 'e' + -precision)).toFixed(precision);
}

// Usage:
var number = 859.385;
console.log(toFixed(number, 2)); // Output: "859.39"
로그인 후 복사

결론

Javascript의 toFixed() 메서드의 한계를 이해하고 앞서 언급한 해결 방법을 통해 프로그래머는 반올림 부정확성을 극복하고 애플리케이션에서 신뢰할 수 있는 수치 계산을 보장할 수 있습니다.

위 내용은 Javascript의 toFixed() 메소드가 정확하게 반올림되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!