我已经用 C++ 编程一段时间了。我之前已经看到,由于精度问题,幂函数对更大的幂给出了错误的答案,但是今天在解决编码问题时,我看到在相同类型的参数下,pow() 函数在放入函数时与直接计算时给出了不同的值。
#include <iostream>
#include <math.h>
using namespace std;
long long n,d;
long long power(long long x)
{
return pow(100,x);
}
long long powersecond(long long x)
{
return pow(100,(int)x);
}
int main()
{
n = 68; d = 2;
cout << n*power(d) <<endl; // outputs 679932
cout << n*pow(100,d) <<endl; // outputs 680000
cout << n*powersecond(d) <<endl; // outputs 679932
cout << n*pow(100,(int)d) <<endl; // outputs 680000
return 0;
}
Run Code Online (Sandbox Code Playgroud)
请注意,即使在 powersecond() 函数中将 x 转换为整数后,答案也不会改变。即使 d 是 int …