标签: c++ nan
我的程序由于某种原因出现故障,我发现这是因为我的计算结果为pow(-0.2,0.2),当它被调用时,它会解析为-nan(ind)。
如果它是一个非常小或非常大的数字我会理解,但为什么C ++将此计算解析为-nan(ind)?有没有办法让它输出正确的值(-0.72477966367)?
答案 0 :(得分:6)
我想你想计算一个负数的第五个根,可以写成x ^(1 / n)。但是C和C ++ pow不支持这一点。请参阅pow文档:
pow
如果基数为有限负数且指数有限但不是整数值,则会导致域错误。
答案 1 :(得分:2)
您可以输出正确的值,如下所示:
goForward()
Live Demo