VC中2个浮点数比较大小

来源:百度知道 编辑:UC知道 时间:2024/06/19 04:13:39
从文件中读出数据,统计各个浮点数出现的次数。统计结果一半正确,一半错误。请高手帮忙看看!

数据是从24.83开始到25.23结束的20个浮点数。统计结果从24.83到25.02是正确的,但是后面的结果就错了。

void main()
{
fstream fMyfile;
fMyfile.open("C:\\result2.txt",ios::in);
if(!fMyfile){cout<<"error";
exit(-1);}

float avertemp[500];
int d2;
float d1,d4,d3,max,min;
int result[80];

memset(result,0,80);

min=100;
max=0;

for(int i=0;i<20;i++)
{
fMyfile>>avertemp[i];
d2=0;

if(avertemp[i]>max)
{max=avertemp[i];}

if(avertemp[i]<min)
{min=avertemp[i];}

}

cout<<max<<endl;
cout<<min<<endl;

fMyfile.close ();

for(int k=0;k<20;k++)
{
d2=0;

for(float d=min; d<=max+0.01;)
{

我也有点晕.
大体看了一下,建议去比较字符串,或者转变成整数处理.
计算机本身不支持浮点类型,但是人支持,所以浮点是人加上去的.来回的加减容易出问题.
举例:
5.1-5.0正常我们预计的结果是0.1
但是计算机可以算出0.1000000000000012

建议先乘以100再比较,得出结果再处以100