我想计算x ^ y。
x是-0.726354,y是0.954。
所以,我使用pow功能。但是返回无限值。
如何计算x值为负值时。
请回答我。
感谢。
答案 0 :(得分:5)
具有非整数指数的负数的幂通常是复数。 pow
函数返回double
,它是实数的近似值。因此,这不起作用。
如果您只对绝对值感兴趣,可以将其重写为:
x ^ y =( - x)^ y *( - 1)^ y
您可以使用pow
计算左项,因为-x是正数。正确的术语的绝对值为1.
顺便说一下,pow
函数不返回"无穷大"值,但是表示域错误的值。
答案 1 :(得分:3)
pow
可能实现为exp (y log x)
(顺便说一句,这是非常聪明的log
,特别是exp
可以非常快速地进行评估在现代芯片组上)。显然,这对非正面x
不起作用,因此也就是你的输出。
该标准指定pow
仅为x
x
和y
的浮点for
定义。 http://en.cppreference.com/w/cpp/numeric/math/pow是一个很好的参考。