昨天晚上在调试一个进程条程序时发现了一个奇怪的事情。请看以下代码:Dim i as Single/Double/或者干脆不声明类型Private sub Command1_Click()Print ii=i+0.01if i=0.1 then msgbox "Hello"End Sub
然后你就单击这个按钮吧,正常应该10次就弹出Hello的对话框,但过了0.1都没有出现,我思考了许久都没有想清楚,是个Bug吗?还是硬件的原因,或者是我的VB没打补丁?哪位高手知道,请指教!
然后你就单击这个按钮吧,正常应该10次就弹出Hello的对话框,但过了0.1都没有出现,我思考了许久都没有想清楚,是个Bug吗?还是硬件的原因,或者是我的VB没打补丁?哪位高手知道,请指教!
解决方案 »
- 求救~~[ODBC Microsoft Access Driver]行中有错误
- 如何得到ListView控件,调整列头宽度时的产生的事件
- 一个字符串转换为数字的问题。。。。。
- 如何定义listview控件中的指定文字的颜色?
- VB 6。0 API GdiTransparentBlt函数调用方面的问题
- 求救
- 用Active skin 4.0后怎么菜单栏上得图标没有了,窗体上得image控件得图片也没了,怎么办
- 困惑啊!!!同样的代码,2000下没问题,XP下就不行。救命啊!!!!
- 数据库记录数问题
- 一个关于COM+的事务处理服务器(MTS)的应用问题
- 在VB环境中编辑一个工程文件时怎样打开另一个工程文件?
- 安装MDAC后,如何卸载?
用浮点就是这样!
由于上述原因,一般在比较浮点数一般不使用等号。也就是说,不使用8.2872 - 8.2871 =0.0001这样的形式,而是看两个浮点的差的绝对值是否非常接近零,如Abs(8.2872 - 8.2871 - 0.0001) < 1e-10就认为8.2872 - 8.2871 =0.0001了。