私はこれらの操作に浮動小数点数を使用しています:精度を最大化する操作の順序
どちらがより正確ですか?
- (* b)は/ C
または
- (/ C)*
Bの問題は全くそれをしないか、に依存しません状況?もしそうなら、私はどのような場合に選択すべきですか?
私はこれらの操作に浮動小数点数を使用しています:精度を最大化する操作の順序
どちらがより正確ですか?
または
Bの問題は全くそれをしないか、に依存しません状況?もしそうなら、私はどのような場合に選択すべきですか?
本当に、ダブルを使用しないと誤った方向になり、精度については気にしません。
それ以外の場合は、最初の結果が次に高い2の累乗よりわずかに低い場合は、エラーの範囲が最適になります。たとえば、e/sqrt(2)≒1.922が2未満で閉じるため、(π* e)/ sqrt(2)を計算すると、(e/sqrt(2))* piを計算することによって、 2つの次の高い電力への相対的な誤差はより低い。
多数の項目を加減算するには、最初に等しい大きさと反対の記号(x-yはy/2≦x≦2yの場合に正確に計算されます)を差し引き、できるだけ小さな結果。
精度を気にする人は、ダブルスを使用しないでください。 –
私は精密さを気にしますが、それほど大したものではありません。私は2つのうちの1つを使用することを余儀なくされているので、どちらが良いかを知りたいと思います。 – ZeroZ30o
私は値によると思います。 'a * b'の結果がオーバーフロー(無限大)になった場合、それはあまり正確ではありません。 OTOHの場合、 'a/c'がアンダーフロー(非正規化、つまり0.0f)になり、精度は低くなります。また、 '(1/3)* 3'は'(1 * 3)/ 3'ほど正確ではありません。オーバーフローの可能性がない場合は、 'a * b/c'を使用します。 –