VBScript中处理浮点数相减的精度问题

Dim before, after, result
before = Browser("Fortex 6 WebTrader").Page("Fortex 6 WebTrader").WebEdit("WebEdit").GetROProperty("value")
Browser("Fortex 6 WebTrader").Page("Fortex 6 WebTrader").WebElement("WebElement_2").Click '减少一个pid
after = Browser("Fortex 6 WebTrader").Page("Fortex 6 WebTrader").WebEdit("WebEdit").GetROProperty("value")
print csng(before)
print csng(after)
result =  csng(before) - csng(after)
print result,6


上述的代码运算两个浮点数的相减,并打印出结果,输出结果如下:

.95991
.95981
9.995699E-05

这个不是我想要的运算结果,应该是0.0001才是。解决这个问题,要用到vbscript 的 round 函数,进行小数位的四舍五入。

最后一行改成:

print round(result,6)

得到想要的结果

.95971
.95961
.0001

你可能感兴趣的:(qtp)