计算机浮点数的储存原理

来源:百度知道 编辑:UC知道 时间:2024/05/17 23:46:29
#include<iostream>
using namespace std;
void splitfloat(float x,int *intpart,float *fracpart)
{
*intpart=int(x);
*fracpart=x-*intpart;
}
int main()
{
int i,n;
float x,f;
cout<<"Enter 3 float numbers:"<<endl;
for(i=0;i<3;i++)
{
cin>>x;
splitfloat(x,&n,&f);
cout<<"Integer Part="<<n<<" "<<"Fraction Part="<<f<<endl;
}
return 0;
}

当输入555.6时为什么得不到正确的结果?????
正确结果不应该是0.6吗???它怎么会得出的是0.599976呢?????
"浮点是以单元的形式储存在内存上的" 怎么理解??可以说得详细点吗,或者提供一些相关的资料
先谢谢了

浮点是以单元形式储存在内存上的,但每个单元内存有限,所以比如你想输入1/3的话,你以为是1/3了,实际上不足1/3,而是0.3333333333333333,所以计算时,会以0.3333333333333333的形式去计算,而不是1/3,因此出现了本来是0.6的,而输出却是0.599976.建议把浮点精度变大