一个奇怪的现象
我从书上看到了一个程序,把它拿来运行。程序的功能就是将一个浮点数分成整数和小数两个部分输出。
程序代码:#include <iostream>
using namespace std;
void sfloat(float x,int *intp,float *frac)
{*intp=int(x);
*frac=x-*intp;
}
void main()
{int i,n;
float x,f;
cout<<"enter 3 float point numbers:"<<endl;
for(i=0;i<3;i++)
{cin>>x;
sfloat(x,&n,&f);
cout<<"integer part="<<n<<" fraction part="<<f<<endl;
}}但使用的时候,有些数是正常的,但我输入56.3、56.2、56.1这个3个数时却出现了误差。不知道是什么原因造成的。








