我在编程中碰到一下问题,百思不得其解??????????
我要将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 *
我要将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 *
解决方案 »
- Assert Failed 狗血的错误啊~~~~
- 搞很久一直搞不好的一个问题,help!!!
- 如何将两个工具条都停靠到右侧的同一列中?
- 忘记windows2000 advance密码,如何进入系统,并取回密码,请个位大侠多指点!小弟深表感谢!!!
- 一个非常非常简单的问题:VC+ACCESS
- 如何纪录鼠标路径?
- 定义了一个系统热键,想弹出某个窗体(例dlg2),但却首先弹出主窗体(dlg1,dlg1中的一个按钮按下后弹出dlg2)。如何热键直接弹出dlg2呢?
- WAVEOUTOPEN函数在WIN7下会失败
- MFC对话框聊天程序
- MFC实现客户端和服务器端socket通信,使用多线程分别进行收发数据,并在线程中操作界面
- 请教mfc问题
- 一个简单的问题,怎样让多文档或者单文档的子窗体一出现就最大化?
最简单的解决办法是
dd = (ff + 0.00001) * 100;
我的程序中金额有的是用float来表示,有的用DWORD表示,所以相互之间有很多转换,这样来解决会不会出问题?比如说有累积错误之类的。
谢谢各位