小编Sud*_*thi的帖子

C++ pow() 函数在放入函数时会改变行为

我已经用 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 …

c++ math gnu

7
推荐指数
1
解决办法
209
查看次数

标签 统计

c++ ×1

gnu ×1

math ×1