Чтобы найти причину, по которой переменные с плавающей точкой установлены в NaN, в моей программе на C ++, я включил исключения с плавающей точкой, например:
#include <fenv.h>
feenableexcept(FE_INVALID | FE_OVERFLOW);
Я знаю, что это работает, потому что когда я пишу:
int val = 0.0/0.0;
в моей программе исключение с плавающей запятой повышено.Но NaN "распространяются" в вычислениях с плавающей запятой моей программы, и я понятия не имею, какая переменная сначала устанавливается в NaN.
Какие существуют причины, по которым переменная установлена в NaN, существует, что не приведет к плавающемуисключение точки?