ホームページ >ウェブフロントエンド >jsチュートリアル >toFixed(2) が特定の 10 進数値に対して誤って丸められるのはなぜですか?

toFixed(2) が特定の 10 進数値に対して誤って丸められるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-22 14:40:02506ブラウズ

Why is toFixed(2) Rounding Incorrectly for Certain Decimal Values?

JavaScript toFixed 丸めの不一致

toFixed(2) は特定の小数値に対して切り上げを行わず、提供された例では 859.39 ではなく 859.38 を表示します。 。この不一致は、toFixed() メソッドのブラウザ実装のばらつきに起因する可能性があります。

この問題を回避し、ブラウザ間で一貫した丸めを確保するには、blg が推奨する toFixed10() メソッドの利用を検討してください。このメソッドは、拡張精度の値であっても正確な丸めを提供します。

toFixed10() を組み込んだ更新されたコード スニペットは次のとおりです:

function toFixed(num, precision) {
    return (+(Math.round(+(num + 'e' + precision)) + 'e' + -precision)).toFixed(precision);
}
...
$('#lblTotalSprice').text('$' + addCommas(toFixed(currSprice, 2)));
$('#lblTotalPrice').text('$' + addCommas(toFixed(currPrice, 2)));
$('#lblTotalDiscount').text('$' + addCommas(toFixed(currDiscount, 2)));
$('#lblTotalDeposit').text('$' + addCommas(toFixed(currDeposit, 2)));

以上がtoFixed(2) が特定の 10 進数値に対して誤って丸められるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。