私のアプリは Delphi5 で書かれています。バグを追跡するために madExcept を使用しています。「ゼロによる浮動小数点除算」例外を追跡しましたが、そうであってはなりません。それが発生するコード セグメントは、次のようになります。
val:=100*Power(1.25,c);
ここで、'c' の実際の値は常に '1' です。
ログのスタック トレース:
main thread ($338f8):
00403504 +010 MyApp.exe System 1970 +5 @FRAC
00479148 +058 MyApp.exe Math Power
007ae8a6 +262 MyApp.exe MyClass 1962 +36 TMyClass.FormMouseWheel
除算が行われたある時点で別の例外がありましたが、除数は変数であり、例外が発生したときに値も「1」でした。デバッグして再現できたこと。
私の質問:何が欠けていますか?私が認識していない浮動小数点除算に関する誤検知はありますか?
さらに、例外ポイントで C++ DLL を使用していません。これは、FP 除算を異なる方法で処理する傾向があるためです (例外を発生させるのではなく、NaN または +/-INF を返す)。
任意のポインタをいただければ幸いです。