主题:一个有关 double和float转换问题
在网上找到一篇有关类型转换的文章。http://it.kswchina.com/ncre/ej/xy/fd/599219.html
里面有这样一段:
1 double d = 0.6;
2 float f = (float)d;
3 double d2 = f;
4 bool b = d == d2;
这里的b,也是false。
然后我就去编个小程序试看看,以下程序:
#include <iostream>
using namespace std;
int main()
{
double d = 0.6;
float f=(float)d;
double d2=f;
bool b = d == d2;
cout<<d2<<endl;
cout<<f<<endl;
cout<<b<<endl;
return 0;
}
结果输出时0.6
0.6
1
郁闷啊,为什么b是true的,和上面讲的不一样?求指点!
[img]http://hiphotos.baidu.com/as1138/abpic/item/bab1011332b1523b5baf5311.jpg[/img]
里面有这样一段:
1 double d = 0.6;
2 float f = (float)d;
3 double d2 = f;
4 bool b = d == d2;
这里的b,也是false。
然后我就去编个小程序试看看,以下程序:
#include <iostream>
using namespace std;
int main()
{
double d = 0.6;
float f=(float)d;
double d2=f;
bool b = d == d2;
cout<<d2<<endl;
cout<<f<<endl;
cout<<b<<endl;
return 0;
}
结果输出时0.6
0.6
1
郁闷啊,为什么b是true的,和上面讲的不一样?求指点!
[img]http://hiphotos.baidu.com/as1138/abpic/item/bab1011332b1523b5baf5311.jpg[/img]