Как округлить до ближайшего числа X - псевдокод для VBScript - PullRequest
1 голос
/ 16 августа 2010

Я пытаюсь округлить число до ближайшего, скажем, 15, 20, 30. то есть

726 до ближайшего 30 - это 700

714, до ближайшего 15 - это 700 и т.д.

Код VBScript был бы очень полезен, но псевдокод также очень помог бы!

РЕДАКТИРОВАТЬ: Извините, я забыл сказать, что 726 действительно время, выраженное какInt, то есть 07:26.Так что это должно быть 07:00, а не 690

РЕДАКТИРОВАТЬ еще раз: Я просто извлекаю минуты и использую код, с которым люди ответили.Надеюсь, это поможет кому-то еще.Спасибо!

Спасибо

Ответы [ 3 ]

3 голосов
/ 16 августа 2010

Псевдокод:

diff = num mod nearest
return num - diff

Так 726 мод 30 = 6

726 - 6 = 720

VBScript:

Function GetNearest(num, nearest)
    Dim diff = num mod nearest
    GetNearest = num - diff
End Function
1 голос
/ 16 августа 2010

другой способ сделать это просто использовать целочисленное деление: 726/30 * 30 = 720

1 голос
/ 16 августа 2010

Вы указали несколько языков в ваших тегах.Я собираюсь с C #, но более общий алгоритм:

int n = 726;
int q = 30;
int r = Math.Floor(n / q) * q;
...