我有两个值 p = 19,q = 14 。我想使用幂函数pow(p, q)
来计算p q 。
这是我的代码:
long long p=19,q=14;
cout<<pow(p,q);
正确答案是: 799006685782884121 ,但我的代码为我提供了 799006685782884096 ,这是不正确的。
我还尝试使用unsigned long long
代替long long
进行这些计算,但这并没有帮助。
答案 0 :(得分:3)
pow
函数定义为:
double pow(double x, double y);
这意味着它需要浮点参数并返回浮点结果。由于浮点数的性质,某些数字无法准确表示。你得到的结果可能是最接近的匹配。
另请注意,您正在进行两次(可能是有损的)转换:
long long
转换为double
和double
转换为long long
。