Я пытаюсь взять 11-й корень выражения, и я получаю возврат -inf
,
std::cout << pow(j,(1.0/11.0)) << std::endl;
где j
это просто некоторые log
выражение. Я проверил этот номер, чтобы убедиться, что он действителен, и это так. Я думаю, что это способ выражения силы. Есть лучший способ сделать это? Благодарю.
И да, я включил cmath
в мою работу.
Я не могу придумать вескую причину для возврата Pow -inf, если ваши входные данные незначительно вменяемые. Однако, если вы передаете отрицательное число, стоит попробовать следующее:
if(j==0) return 0;
if(j<0) return -pow(-j, 1.0/11.0);
return pow(j,1.0/11.0);
попробуйте поискать ошибки FPU
Также вы можете попробовать добавить это до того, как Pow
asm { fninit; };
значение j перед сбоем будет хорошим началом для нас.
попробуйте сохранить результат pow в некоторой переменной float / double
сверните свой код (выключите все по частям)
Дайте нам знать, что вы нашли.