浮点数比较问题
今天碰到了浮点数转化和浮点数比较问题。先说浮点数转化,我用了(float)atof(string& s) 把一个内容为浮点数的字符串转化成 float型。
结果 "0.7"变成了 0.69999999
然后,怎么判断我转化出的这个数是0.7呢还是0.69999999呢?伤脑筋阿
比较的话没什么问题
float a,b;
if(a-b<1e-8)
cout<<"a=b"<<endl;
float在储存的过程中是省略第一位来增加其精度的,所以往往会出现0.7=0.699999这样的情况
需要cout<<fixed<<setprecision(1)<<f<<endl;才行