pow()函数在C ++中返回不同的结果

时间:2018-12-17 17:31:13

标签: c++ pow unsigned-long-long-int

我们知道 unsigned long long int 的范围是0到18,446,744,073,709,551,615

均值 unsigned long long int 能够轻松处理19-20位数字。

所以,我想知道为什么我的程序返回不同的值。

程序:

#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long int ulli;
int main()
{
    double a,b;
    cin>>a>>b;
    ulli result = (ulli)pow(a,b);
    cout<<"result = "<<result<<"\n";
}

输入以下内容后:a = 15,b = 15

预期输出为:4378938903808593 75 (18位数字)

但是,它给出的结果是:result = 4378938903808593 92 (后两位数字不同)。

有人能帮我为什么我得到不同的结果吗?

0 个答案:

没有答案