找回密码
 加入
搜索
查看: 3784|回复: 10

[AU3基础] (已解决)>=符号对于末尾带0的判断错误问题

  [复制链接]
发表于 2010-11-23 21:22:29 | 显示全部楼层 |阅读模式
本帖最后由 330259789 于 2010-11-24 17:48 编辑

看如下测试结果
$A=2.60
$B=2.63
$C=0.03
If $B-$A>=$C Then MsgBox(0,"","真")================假

$A=2.60
$B=2.63
$C=0.02
If $B-$A>=$C Then MsgBox(0,"","真")================真

$A=2.61
$B=2.64
$C=0.03
If $B-$A>=$C Then MsgBox(0,"","真")================真

$A=2.59
$B=2.62
$C=0.03
If $B-$A>=$C Then MsgBox(0,"","真")===============真

但是如果大的带0就又对了
$A=2.57
$B=2.60
$C=0.03
If $B-$A>=$C Then MsgBox(0,"","真")===============真

为什么啊?怎么让第一条测试为真?哪里出问题了?

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-11-23 21:57:26 | 显示全部楼层
看看下面的结果.
$A = 2.60
$B = 2.63
$C = 0.03
$d = $B - $A
        MsgBox(0, "", $d)

$d = 0.0299999999999998

$A = 2.61
$B = 2.64
$C = 0.03
$d = $B - $A
        MsgBox(0, "", $d)

$d = 0.0300000000000002

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

 楼主| 发表于 2010-11-23 22:08:28 | 显示全部楼层
回复 2# lixiaolong
刚才我也试过了,是这样的。
这样的话我不是不能和0.03比较了?难道C只能取0.029?
知道为什么减出来有那么多小数吗?
发表于 2010-11-23 22:20:18 | 显示全部楼层
本帖最后由 3mile 于 2010-11-23 22:24 编辑

回复 3# 330259789
浮点数是存储方式和其它不一样,它使用基数和指数两部分存储,因此计算时会出现
误差。
$A=2.60
$B=2.63
$C=0.03
If StringFormat('%.2f',$b-$A)>=$C Then MsgBox(0,"","真");================假

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

发表于 2010-11-23 22:33:28 | 显示全部楼层
为什么一定要大于等于,用小于不好吗
 楼主| 发表于 2010-11-24 17:46:47 | 显示全部楼层
回复 4# 3mile

恩,明白了,谢谢
 楼主| 发表于 2010-11-24 17:48:11 | 显示全部楼层
回复 5# netegg

不能用小于的,只能用小于等于,不然等于的情况就不能判断了
发表于 2010-11-24 18:03:21 | 显示全部楼层
本帖最后由 netegg 于 2010-11-24 18:05 编辑

($B-$A)>=$C 难道和NOT(($B-$A)<$c) 不一样吗?看来要重新学习逻辑了
 楼主| 发表于 2010-11-24 18:11:42 | 显示全部楼层
回复 8# netegg

这样可以的,但不是复杂化了吗?没有大于等于来的简洁明了
发表于 2010-11-24 19:56:45 | 显示全部楼层
本帖最后由 netegg 于 2010-11-24 19:57 编辑

Int(($b - $a)*100)/100
或者
Round(($b - $a)*100)/100
 楼主| 发表于 2010-11-25 19:44:49 | 显示全部楼层
是个办法,谢啦
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-25 13:39 , Processed in 0.089515 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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