高手请解释一下,为什么会这样???为什么会这样???是不是VC的BUG啊!
我在编程中碰到一下问题,百思不得其解??????????
我要将float类型的数据转换成DWORD类型,
DWORD dd;
float ff;
ff = 0;
for (int i=0;i<100;i++)
{
ff += 0.01;
dd = ff*100;
m_str.Format("%.2f --> %ld\r\n",ff,dd);
m_str1 += m_str;
}
为什么输出了以下结果??????我标了星号的输出结果都有错,比期望值小1,
为什么?为什么?为什么?为什么?为什么?为什么?为什么?为什么?为什么?
0.01 --> 1
0.02 --> 1 *
0.03 --> 2 *
0.04 --> 3 *
0.05 --> 4 *
0.06 --> 6
0.07 --> 7
0.08 --> 8
0.09 --> 8 *
0.10 --> 9 *
0.11 --> 10 *
0.12 --> 11 *
0.13 --> 12 *
0.14 --> 13 *
0.15 --> 15
0.16 --> 16
0.17 --> 17
0.18 --> 18
0.19 --> 19
0.20 --> 20
0.21 --> 21
0.22 --> 22
0.23 --> 23
0.24 --> 24
0.25 --> 25
0.26 --> 26
0.27 --> 27
0.28 --> 28
0.29 --> 29
0.30 --> 30
0.31 --> 31
0.32 --> 32
0.33 --> 32
0.34 --> 33 *
0.35 --> 34 *
0.36 --> 35 *
0.37 --> 36 *
0.38 --> 37 *
0.39 --> 38 *
0.40 --> 39 *
0.41 --> 40 *
0.42 --> 41 *
0.43 --> 42 *
0.44 --> 43 *
0.45 --> 44 *
0.46 --> 45 *
0.47 --> 46 *
0.48 --> 47 *
0.49 --> 48 *
0.50 --> 49 *
0.51 --> 50 *
0.52 --> 51 *
0.53 --> 52 *
0.54 --> 53 *
0.55 --> 54 *
0.56 --> 55 *
0.57 --> 56 *
0.58 --> 57 *
0.59 --> 58 *