我需要一些有关 VBS 脚本的帮助。
我使用它来显示每 10% 的状态:
Max = 300
everyPercent = 10
for x = 1 to Max
if x mod Max / 100 * everyPercent = 0 then
msgbox round((x / Max ) * 100) & "% done" & vbcr & vbcr & "Status: " & x & "/" & Max
end if
next
如果最大值大于 5,则效果很好。当值为 5 时,脚本崩溃,因为mod
用 和 四舍五入转换 2 个数字int
。因此 0.4 变为 0,并且除法mod
失败。
有没有一种简单的方法(在同一行)可以始终正确舍入,但不低于 1。
在 VB.net 中我将使用这个:
if x mod (iif((Max / 100 * everyPercent) < 1, 1, Max / 100 * everyPercent) = 0 then
答案1
我很困惑为什么这必须是一行和一个简单的
If Max / 100 * everyPercent < 1 Then
temp = 1
Else
temp = Max / 100 * everyPercent
If x mod temp = 0 Then
...
这还不够,但是如果你是内联的粉丝,为什么不自己创建它呢?
Function IIf(condition, value_if_true, value_if_false)
If condition Then
IIf = value_if_true
Else
IIf = value_if_false
End If
End Function
如果您创建这样的函数,您可以像使用 iif 一样使用它。