浮動小数点の累積: 精度と順序
浮動小数点数を累算する場合、加算される順序には重要な意味がある可能性があります。
精度が向上する昇順
あなたの直感は正しいです。通常、数値を昇順に加算すると精度が向上します。単精度浮動小数点を使用したシナリオを考えてみましょう。
最初に 1 を加算すると、精度が失われるため合計は 1 になります。他の値を追加しても影響はありません。
最初に小さな値を追加すると、それらはいくらか蓄積されますが、特定の点を超えると精度も失われます。
負の値と不正確さ
ただし、負の数値が含まれる場合、昇順が不適切になる可能性があります。次の値を考慮してください: 1、-1、10 億分の 1。
正しい結果 (10 億分の 1) を生成する順序は 1、-1、10 億分の 1、-1、1、10 億分の 2 つだけです。残りの注文の結果は不正確です。
高度な累積手法
極端な場合には、より高度な手法が必要です:
現実世界のプログラミングとの関連性
この問題は直接関係がないように見えるかもしれませんが、実際のプログラミングでは、次のような特定のシナリオで発生する可能性があります。
以上が正確な累算には浮動小数点加算の順序が重要ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。