我们知道 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 (后两位数字不同)。
有人能帮我为什么我得到不同的结果吗?