我正在尝试取表达式的第 11 个根,我得到了-inf
.
std::cout << pow(j,(1.0/11.0)) << std::endl;
wherej
只是一些log
表达。我已经检查了那个号码以确保它是有效的,而且确实如此。我认为这是权力表达的运行方式。有一个更好的方法吗?谢谢。
是的,我已将其cmath
纳入我的工作。
我正在尝试取表达式的第 11 个根,我得到了-inf
.
std::cout << pow(j,(1.0/11.0)) << std::endl;
wherej
只是一些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 的结果存储到一些浮点/双精度变量
最小化您的代码(部分关闭所有内容)
让我们知道您发现了什么。