如何舍入到最接近的X数 - VBScript的伪代码

时间:2010-08-16 16:08:30

标签: javascript vbscript rounding

我正在尝试将数字向下舍入到最近的15,20,30。即

726到最接近的30是700

714到最近的15是700 等

VBScript代码将非常有用,但伪代码也将是一个巨大的帮助!

编辑:抱歉,我忘了说,726真的是一个表达为int的时间,即07:26。所以这应该是07:00,而不是690

再次编辑:我只是提取分钟并使用人们已回答的代码。希望这也会帮助其他人。谢谢!

由于

3 个答案:

答案 0 :(得分:3)

伪代码:

diff = num mod nearest
return num - diff

所以726 mod 30 = 6

726 - 6 = 720

的VBScript:

Function GetNearest(num, nearest)
    Dim diff = num mod nearest
    GetNearest = num - diff
End Function

答案 1 :(得分:1)

您在代码中列出了一堆语言。我将使用C#,但是更通用的算法:

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

答案 2 :(得分:1)

另一种方法是使用整数除法:726/30 * 30 = 720