因此,我在代码块上运行了以下代码:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int a;
a=pow(10,9);
cout<<a<<endl;
a=ceil(pow(10,9));
cout<<a<<endl;
a=floor(pow(10,9));
cout<<a<<endl;
return 0;
}
我得到的输出为:
999999999
100000000
100000000
由于截断效应,第一输出不是10 ^ 9,这意味着pow(10,9)类似于
999999999.99999 ..,那么这东西的底面是1000000000?
解决方法:
实际上,int的最大值是2,147,483,647,因此不应有溢出或截断(这是一个int).我的输出正好是:
1000000000
1000000000
1000000000