dポイントプレゼントキャンペーン実施中!

Visual StudioのC++で開発を行っております。
現在はちょと古いですがVisual Studio .NET 2003を使用しており、今度Visual Stuido 2005にバージョンあげて再ビルドしようと思ってます。今後はVisual Studio 2008も考えております。
ただ計算精度として、各バージョンで違いがでてしまうのではないかと少し不安です。基本的には倍精度での一致すれば問題はないと思ってます。

A 回答 (2件)

最適化のかかり具合によって,FPU内部でどこまで計算するかなどが異なり,結果として浮動小数点数の値に細かい差が出てくる可能性はあります。


ただし,そもそも浮動小数点数の演算は誤差があるものとして扱っているはずなので,有意な精度の差は起きないと思います。
# デバッグとリリースで浮動小数点数の値に差が出ること自体あり得ますから。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
そうですね、デバッグとリリースでも差がありますので、有効桁を考慮しながら比較してみたいと思います。

お礼日時:2008/02/13 23:39

64ビットコンパイラとかを除けば、基本的にはバージョンによる精度の差はないと思います。



ただし、ずっと以前のバージョンであるVisual C++ 1.5とか、それ以前のものは、int型が16ビット、long doubleが80ビットだったと思います。
バージョンによる計算精度の違いという意味では、これが唯一ではないでしょうか?
    • good
    • 0
この回答へのお礼

単精度ではほとんど一致を確認しています。
doubleですと有効桁で多少の違いはでますが、丸め誤差や桁落ちなどで差がでてしまうこともありますね。
アルゴリズムも考慮して比較してみたいと思います。

回答ありがとうございました。

お礼日時:2008/02/13 23:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!