ホームページ  >  記事  >  ウェブフロントエンド  >  Javascript の toFixed() メソッドが正確に丸められないのはなぜですか?

Javascript の toFixed() メソッドが正確に丸められないのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-22 15:07:03837ブラウズ

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

JavaScript toFixed が正確に丸められない

JavaScript では、toFixed() メソッドを使用して数値を文字列にフォーマットします。ただし、このメソッドを使用すると、特に数値を正しく切り上げられない場合など、予期しない丸め動作が発生することがあります。

この丸めの不一致の背後にある理由は、JavaScript で使用される基礎的な浮動小数点演算にあります。浮動小数点数は、特に非常に小さい値または非常に大きい値を扱う場合に精度エラーが発生することがあります。

この問題に対処するには、次の回避策を検討してください。

提供されているソリューションでは、toFixed10() メソッドの使用を提案しています。これは、より正確な丸めを保証する、元の toFixed() メソッドの修正バージョンです。このメソッドは数値を小数点以下 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 中国語 Web サイトの他の関連記事を参照してください。

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