一个奇怪的现象
我从书上看到了一个程序,把它拿来运行。程序的功能就是将一个浮点数分成整数和小数两个部分输出。程序代码:
#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个数时却出现了误差。不知道是什么原因造成的。