Я собираюсь выполнить математические вычисления с использованием C++. Номер с плавающей запятой ввода является допустимым числом, но после вычислений полученное значение является NaN. Я хотел бы проследить точку, в которой появляется значение NaN (возможно, с использованием GDB), вместо того, чтобы вставлять в код много isNan()
. Но я обнаружил, что даже такой код не вызывает исключение, когда появляется значение NaN.Как проследить NaN в C++
double dirty = 0.0;
double nanvalue = 0.0/dirty;
Может ли кто-нибудь предложить метод отслеживания NaN или превращения NaN в исключение?
Связанный: [Могу ли я заставить gcc сказать мне, когда результаты вычислений в NaN или inf во время выполнения?] (Http://stackoverflow.com/questions/2941611/can-i-make-gcc-tell-me-when -a-calculate-results-in-nan-or-inf-at-runtime/20973509) – legends2k
Также http://stackoverflow.com/questions/5393997/stopping-the-debugger-when-a-nan-floating-point -number-is-production – Riot