初投稿です。よろしくお願いします。
Visual C++ や gcc などコンパイラによって float を使った計算結果に
違いが出るということを聞いたのですが、具体的にどのような違いが出るのか
ご存知の方がいらっしゃいましたらご教示ください。
コンパイラの違い
Re:コンパイラの違い
あらゆる可能性が考えられます。
実行環境が同じ場合であっても、floatの表現範囲や丸め方向は処理系定義ですし、標準化以前のレガシーな処理系、あるいはコンパイルオプションしだいでは、floatはいったんdoubleに変換されてから演算することになります。
実行環境が異なれば、それこそさらに大きな違いが出てきます。sNaNの有無やSIGFPEの発生条件、無限大の有無、その他もろもろの可能性があります。
実行環境が同じ場合であっても、floatの表現範囲や丸め方向は処理系定義ですし、標準化以前のレガシーな処理系、あるいはコンパイルオプションしだいでは、floatはいったんdoubleに変換されてから演算することになります。
実行環境が異なれば、それこそさらに大きな違いが出てきます。sNaNの有無やSIGFPEの発生条件、無限大の有無、その他もろもろの可能性があります。