VBScript:最接近的千位数

时间:2017-09-27 17:40:22

标签: vbscript rounding

我有数字,我想将向上舍入到最接近的千位数(除非该数字已经四舍五入到最接近的千位数):

 1,000      to   1,000.00
 2,100.00   to   3,000.00
 3,500.99   to   4,000.00
 4,900      to   5,000.00

我该怎么做?

2 个答案:

答案 0 :(得分:3)

这似乎有效:

-Int(-[cost]/1000)*1000

此处有相关问题:Field Calculator: How to round UP to the nearest thousand

答案 1 :(得分:0)

这里有一些伪代码(JS)来做。我可以解释一下这个算法,虽然不知道vbscript的语法。

首先,我们关心的唯一数字是最重要的数字,或千位数。所以我们首先通过将数字三位移到右边来隔离该数字。

2100 - > 2.100

然后我们使用ceiling函数强制小数舍入到下一个最接近的整数。

2.100 - > 3

现在我们可以重新移动剩下的三个位置,使其具有原始幅度。

3 - > 3000

vbscript可能有也可能没有上限函数(here's an implementation of one,其他函数是简单的数学运算。

function toNearestThousand(x) {
    return Math.ceil(x/1000)*1000;
}