我正在尝试使用表达式的第11个根,我将返回-inf
。
std::cout << pow(j,(1.0/11.0)) << std::endl;
其中j
只是一些log
表达式。我检查过这个号码以确保它有效,而且确实有效。我在想,这就是动力表达式的运行方式。有一个更好的方法吗?感谢。
是的,我已将cmath
纳入我的工作中。
答案 0 :(得分:1)
如果你的输入略微合理,我想不出pow返回-inf的正当理由。但是,如果您传递负数,可能值得尝试的是:
if(j==0) return 0;
if(j<0) return -pow(-j, 1.0/11.0);
return pow(j,1.0/11.0);
答案 1 :(得分:1)
尝试查找FPU错误
你也可以在pow
之前尝试添加它asm { fninit; };
崩溃之前的j值将是与我们分享的良好开端。
尝试将pow的结果存储到某个浮点/双变量
最小化您的代码(逐个部分关闭所有代码)
告诉我们你找到了什么。