2011-07-31 3 views
2

fp:preciseの代わりに/ fp:fastを設定すると、どのようなエラーが発生するのだろうか? 私はMSV10の下で働いています/fp:高速vs:fp:正確などのような種類のエラーが発生する可能性がありますか?

私は/、*、+、 - 演算を、最大桁数が8に等しい1.4379294(通貨レート)の倍数で実行します。

+1

http://msdn.microsoft.com/en-us/library/aa289157(v=vs.71).aspx –

+3

通貨操作に標準の浮動小数点数を使用しない*使用*しないでください。ほとんどの場合、小数浮動小数点または固定小数点算術を使用したいと思うでしょう。 –

答えて

6

と同じエラーが表示されます。計算結果:結果を10進数に変換した後で15桁以上を得ることはありません。残りはランダムノイズ数字です。/fp:fastと/ fp:preciseとの違いは、これらのノイズ桁に何が起こるかです。

/fp:preciseオプションは、x86 FPUの問題を解決し、中間結果をFPUレジスタに80ビット精度で格納します。中間値がレジスタ内に保持されている場合、微妙に異なるノイズ桁値が発生する可能性があります。/fp:preciseを指定すると、コードジェネレータはこれらの値を強制的にメモリにフラッシュし、64ビットに切り捨てて戻します。それは遅いですが、より一貫したノイズを生成します。浮動小数点値をイプシロンなしで等価であると比較するという罪を犯すと、問題になります。

ほとんどの会計士にとっては、2つではなく10本の指数で数えられる数学ライブラリを使用することは、一般的な解決策です。ベース10からベース2に数値を変換するときに生成されるものを排除することで、ノイズ桁の問題を解決します。ハードウェアアクセラレーションなしですべての計算がソフトウェアで行われるため、コードは/ fp:しかし、通常は会計アプリケーションの問題ではありません。

+0

すてきな答え。あなたは私がespilonを使って2倍の2倍を比較すると、私が/ fp:正確であるという問題はもう増えないと私に確認していますか? fp:fastはfp:preciseより速いです。fp:正確なままにする理由はありません – Guillaume07

+0

はい、確認しました。 –

+0

ノイズ項は、基数点の後の数字に始まりますか? – Guillaume07

関連する問題