Мне нужна помощь по моему сценарию 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
и round. Таким образом, 0,4 изменяется на 0, и деление mod
не выполняется.
Есть ли простой способ (в той же строке), чтобы округлять всегда правильно, но ничего не под 1.
в VB.net я бы использовал это:
if x mod (iif((Max / 100 * everyPercent) < 1, 1, Max / 100 * everyPercent) = 0 then