找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4948|回复: 5

[教程源码] 1.4 - 1.3为什么会出现不等于0.1

[复制链接]
  • 打卡等级:开宗立派

1087

主题

2141

回帖

4335

积分

院长

鲜花
9
猫粮
7413
QQ
发表于 2019-3-20 20:55:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
前几天有学员问我按键精灵是不是出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
楼主热帖
  • 打卡等级:无名新人

5

主题

24

回帖

34

积分

按键电脑班学员

鲜花
0
猫粮
368
发表于 2019-3-21 10:01:24 | 显示全部楼层
学习o(∩_∩)o

5

主题

18

回帖

23

积分

学前班

鲜花
0
猫粮
90
发表于 2019-3-21 23:58:35 | 显示全部楼层
原来还有这种情况,学习了

0

主题

15

回帖

15

积分

按键电脑&手机班学员

鲜花
0
猫粮
62
发表于 2019-7-18 13:39:31 | 显示全部楼层
学习了1111

0

主题

6

回帖

6

积分

学前班

鲜花
0
猫粮
9
发表于 2019-9-3 18:13:05 | 显示全部楼层
慢慢学习
  • 打卡等级:无名新人

0

主题

6

回帖

6

积分

学前班

鲜花
0
猫粮
4
发表于 2024-3-22 08:14:46 | 显示全部楼层
慢慢学习
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|紫猫编程学园

GMT+8, 2024-11-21 22:24

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表