有关整形数和浮点型数 的讨论(int,float,double)
整形数和浮点型数据在计算机中的存储方式不同,如果数据比较大时,将一个浮点型数据转换为整型数据时,可能会导致数据的不相等。
比如说:
如果是读入一个整形数据100000000,将它赋值到浮点型数据,无论是double还是float,都将输出为1e+008;
但是,如果读入数据是100000001,那么问题来了,后面的太小的数据会被忽略掉,输出结果同样为1e+008
比如如下的小测试:
先输出n是为了确保n没有溢出。
#include<iostream>
using namespace std;
int main()
{
int n;
int i=0;
double temp=0;
while(i<100)
{
i++;
cin>>n;
temp=n;
cout<<n<<" ";
cout<<temp<<" ";
}
return 0;
}
输出结果如图: