pow函数

来源:互联网 发布:罗德尼号战列舰淘宝 编辑:程序博客网 时间:2024/06/06 03:37

我发现写程序的时候有一个函数总想绕过去——pow()。
下面有一个程序

#include <bits/stdc++.h>#define pb push_back#define ll long long#define INF 0x3f3f3f3fusing namespace std;int main(){    ios::sync_with_stdio(false);    int s;    double a;    for(int i=0;i<5;i++)    {        s=pow(10,i);        a=pow(10,i);        cout<<pow(10,i)<<endl;        cout<<a<<endl;        cout<<s<<endl;        cout<<endl;    }    return 0;}

在codeblocks上运行结果为:
1
1
1

10
10
10

100
100
99

1000
1000
1000

10000
10000
9999
但在vs上的运行结果是正常的(可能vs的编译有点旧,我们暂且不管)
由在cb上的运行结果可以看出
pow()的返回值是一个double类型的,而double类型在计算机内的存储不一定是准确的,所以我们用int型来接收时,会出现误差。

原创粉丝点击