Javascript에서 toFixed가 정확하게 반올림되지 않음
Javascript에서 체크박스 값을 관리하는 과정에서 사용자는 toFixed(2 ) 메서드는 값을 적절하게 반올림하지 않습니다. 예를 들어, 859.385 값은 예상되는 859.39 대신 859.38로 표시될 수 있습니다.
브라우저 불일치 및 정밀도
toFixed 메소드가 다르게 동작할 수 있다는 점에 유의하는 것이 중요합니다. 사용 중인 브라우저를 기반으로 합니다. 브라우저 불일치를 해결하고 브라우저 전체에서 일관된 반올림을 보장하기 위해 권장되는 솔루션은 toFixed10 메소드 또는 다음 사용자 정의 함수를 활용하는 것입니다:
<code class="javascript">function toFixed( num, precision ) { return (+(Math.round(+(num + 'e' + precision)) + 'e' + -precision)).toFixed(precision); }</code>
사용자 정의 함수 구현
제공된 코드에 사용자 정의 toFixed 함수를 통합하려면 다음 수정이 필요합니다.
<code class="javascript">var standardprice = parseFloat($('#hsprice_'+this.id.split('_')[1]).val()); var price = parseFloat($('#hprice_'+this.id.split('_')[1]).val()); var discount = parseFloat($('#hdiscount_'+this.id.split('_')[1]).val()); var deposit = parseFloat($('#hdeposit_'+this.id.split('_')[1]).val()); var currSprice = parseFloat($('#hTotalSprice').val()); var currPrice = parseFloat($('#hTotalPrice').val()); var currDiscount = parseFloat($('#hTotalDiscount').val()); var currDeposit = parseFloat($('#hTotalDeposit').val()); currSprice += standardprice; currPrice += price; currDiscount += discount; currDeposit += deposit; $('#lblTotalSprice').text('$'+addCommas(toFixed(currSprice, 2))); $('#lblTotalPrice').text('$'+addCommas(toFixed(currPrice, 2))); $('#lblTotalDiscount').text('$'+addCommas(toFixed(currDiscount, 2))); $('#lblTotalDeposit').text('$'+addCommas(toFixed(currDeposit, 2))); $('#hTotalSprice').val(toFixed(currSprice, 2)); $('#hTotalPrice').val(toFixed(currPrice, 2)); $('#hTotalDiscount').val(toFixed(currDiscount, 2)); $('#hTotalDeposit').val(toFixed(currDeposit, 2));</code>
이 사용자 정의 함수를 구현하면 브라우저 변형에 관계없이 정확한 반올림을 보장할 수 있습니다.
위 내용은 toFixed가 Javascript에서 값을 정확하게 반올림하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!