日期:2014-05-17  浏览次数:20838 次

你不知道的 double 和float类型的值比较问题
请教大神们关于double 和float类型的值比较问题
请看下面:
float testfloat = 2323.1f;
double testdouble = 2323.1;
这时    testfloat==testdouble  的值是FALSE

float testfloat = 2323;
double testdouble = 2323;
这时    testfloat==testdouble  的值是TRUE
这时什么原理?
double?,float,值比较

------解决方案--------------------
浮点数内部使用二进制保存的,和十进制转换有误差。编译器负责将十进制的2323.1转换为二进制。

好比用三位小数(十进制)表示1/3和6位小数,分别为0.333和0.333333,当然是不等的。