这段VBS代码,两个变量的值明明一样,为什么显示不相等

[复制链接]
查看11 | 回复2 | 2011-11-28 16:45:55 | 显示全部楼层 |阅读模式
计算机中的数据是以二进制保存的,您的变量b因为经过运算而来,而那两个数字的小数部分0.9和0.61在二进制中是无限循环小数,因此计算时候将取近似值来计算。近似后再计算出的结果,当然会与原来的结果有误差。您也许会问,为什么用MsgBox函数输出变量b的计算结果不会带误差值,这是因为MsgBox函数本身的问题,因为它输出需要一个字符串变量,而我们输入的是双精度变量,转换成字符串变量的时候误差就被忽略了。...
回复

使用道具 举报

千问 | 2011-11-28 16:45:55 | 显示全部楼层
那是因为你没有为a和b定义数据类型,所以系统在运算8878.90 + 20319.61时,自动按照双精度来运算了,你可以msgbox b-a,你会发现不是0!a = 29198.51b = 8878.90 + 20319.61msgbox "a、b的值分别为:" & a & "," & bmsgbox "a、b的数据类型值分别为:" & VarTyp...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行