hinjyo 发表于 2011-7-6 19:18:09

请教一下关于QTP中运算的问题

只是一个很平常的比较运算,我不知道为什么算出来的结果不等

Dim Premium2
Dim Premium
Dim ApplyAmount
Dim SumPremium
Dimresult

Premium2 = 174719.17
Premium = 179774.52
ApplyAmount = 5000.00
SumPremium = 177806.25

result = Premium - round(Premium*ApplyAmount/SumPremium,2)

If Premium2 < result then
       msgbox "pass"
   Else msgbox "fail"&result
End If

结果是Premium2 比result 要大,fail 174719.17   应该相等啊 为什么呢

17800455 发表于 2011-7-7 13:39:24

If Premium2 < result then
         msgbox "pass"
   Else msgbox "fail"&result
End If

你这判断写的就有问题。
Premium2 与result相等时,一定执行否则。

nish 发表于 2011-7-7 15:43:05

二楼说的和你执行得都没有问题。else包括了大于和等于:loveliness:

lanchozxd 发表于 2011-7-7 16:32:27

本帖最后由 lanchozxd 于 2011-7-7 16:33 编辑

浮点数不能这么比较的。。。 如果你改成cstr(a)= cstr(b) 就可以通过的你参考下
http://www.vbgood.com/thread-102628-1-1.html 这个里边有说明的

happystar 发表于 2011-7-7 16:49:17

感觉楼主是自己和自己较劲 呵呵

hinjyo 发表于 2011-7-8 11:45:13

本帖最后由 hinjyo 于 2011-7-8 12:01 编辑

四楼正解,一语中的,浮点数不能这样比较,
问题已经解决
:handshake
页: [1]
查看完整版本: 请教一下关于QTP中运算的问题