马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
前几天有学员问我按键精灵是不是出BUG, 因为他发现下面代码结果输出结果居然是不相等.
[按键精灵] 纯文本查看 复制代码 a = 1.3
b = 1.4
c = b - a
TracePrint c
If c = 0.1 Then
TracePrint "相等"
Else
TracePrint "不相等"
End If
这个是因为计算机中采取二进制形式存放数据, 而小数的二进制是无限循环多个, 当你数据类型精度不够时, 就会产生误差.
所以如果追求高精度计算小数的话, 建议使用货币数据类型, 下面代码就不会出现这种问题了
[按键精灵] 纯文本查看 复制代码 a = 1.3
b = 1.4
c = CCur(b - a)
TracePrint c
If c = 0.1 Then
TracePrint "相等"
Else
TracePrint "不相等"
End If |