Я немного обновил функцию, предоставленную «сообществом вики» (лучший ответ), просто чтобы округлить до ближайших 5 (или что угодно), с этим исключением: округленное число НИКОГДА не будет выше Оригинальный номер .
Это полезно в тех случаях, когда необходимо сказать, что "компания жива 47 лет" : я хочу, чтобы на веб-странице отображалось "жива более 45 лет" , избегая лжи в утверждении "жив более 50 лет" .
Так что, когда вы кормите эту функцию 47, она не вернет 50, а вместо этого вернет 45.
'Rounds a number to the nearest unit, never exceeding the actual value
function RoundToNearestOrBelow(num, r)
'@param num Long/Integer/Double The number to be rounded
'@param r Long The rounding value
'@return OUT Long The rounded value
'Example usage :
' Round 47 to the nearest 5 : it will return 45
' Response.Write RoundToNearestBelow(47, 5)
Dim OUT : OUT = num
Dim rounded : rounded = Round((((num)) / r), 0) * r
if (rounded =< num) then
OUT = rounded
else
OUT = rounded - r
end if
'Return
RoundToNearestOrBelow = OUT
end function 'RoundToNearestOrBelow