ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript で浮動小数点数を乗算する際の不正確さを回避するにはどうすればよいですか?

JavaScript で浮動小数点数を乗算する際の不正確さを回避するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-29 06:18:13
オリジナル
173 人が閲覧しました

How Can I Avoid Inaccuracies When Multiplying Floating-Point Numbers in JavaScript?

浮動小数点精度の問題: JavaScript の 10 進数のジレンマを軽減する

JavaScript で浮動小数点数を扱う場合、乗算の不正確さが発生する可能性があります。正確な結果を求める妨げになります。次の例を考えてみましょう:

function test() {
  var x = 0.1 * 0.2;
  document.write(x);
}
test();
ログイン後にコピー

このコードは、予期される 0.02 ではなく 0.020000000000000004 を出力します。この不一致は、浮動小数点演算に固有のエラーが原因です。

精度の落とし穴への取り組み

この課題を克服するために、さまざまな解決策が提案されています。

  • ToFixed と Rounding: これらの間、関数は数字を切り捨てることで簡単に修正できますが、特定のシナリオでは許容できない丸め誤差が発生します。

代替アプローチ

より正確に処理するには10 進算術の場合は、次のオプションを検討してください:

  • を使用します特殊な 10 進データ型: これには、より正確な 10 進数計算を提供する BigDecimal for JavaScript や DecimalJS などの外部ライブラリの使用が含まれます。

コンテキスト依存のソリューション

  • 精度推定: 正確な小数精度が重要ではないアプリケーションの場合は、コンテキストに基づいて適切な桁数に丸めることができます。

追加の考慮事項

  • 丸め誤差の累積: 浮動小数点演算が繰り返されることに注意してください。演算により丸め誤差が蓄積される可能性があるため、特定の計算に対する丸め誤差の影響を監視することが重要です。

正しいアプローチの選択

ソリューションの選択は状況によって異なります。アプリケーションの特定の要件と精度の許容差に応じて決定します。場合によっては四捨五入と切り捨てで十分ですが、精度が最優先される場合は、特殊な 10 進データ型またはコンテキスト依存の推定を使用すると、より正確な結果が得られます。

以上がJavaScript で浮動小数点数を乗算する際の不正確さを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート