问题描述:
环境:vc6.0单文档
情况1、 错
double h = 10.0f;
float d = 100.1f * h;
int c = int(d);
输出结果:h=10.0
d=1001
c=1000
情况2、 错
double h = 10.0f;
float d = 100.2f * h; // 这里有变化
int c = int(d);
输出结果:h=10.0
d=1002
c=1001
情况3、 正确 3到9
double h = 10.0f;
float d = 100.3f * h; // 这里有变化
int c = int(d);
输出结果:h=10.0
d=1003
c=1003
过程:
在错误时,回去查看 d 的值为:100.099999
解决:
在float d = 100.3f * h; 与句后加条哑语句(无用的语句),如:int a 0;
导致原因,尚不清楚,求解