2017-09-27 4 views
1

Ich habe Zahlen, die ich bis auf die nächsten Tausend (es sei denn, die Zahl bereits auf den nächsten Tausender gerundet) runden möchten:VBScript: Rund Zahl bis nächsten Tausend

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 

Wie kann ich tun Dies?

+1

Das Excel-Äquivalent scheint '= -INT (-A1/1000) * 1000' zu sein und das Python-Äquivalent scheint' - (-! Cost! // 1000) * 1000' zu sein. – Wilson

+0

Und so ist es in Oracle SQL getan: 'ceil (COST/1000) * 1000' – Wilson

Antwort

0

Hier ist ein Pseudo-Code (JS) dazu. Ich kann den Algorithmus erklären, obwohl ich die VBScript-Syntax nicht kenne.

Erstens ist die einzige Stelle, die uns interessiert, die wichtigste oder die tausendste Stelle. Also isolieren wir zuerst diese Ziffer, indem wir die Zahl um drei Stellen nach rechts verschieben.

2100 -> 2,100

Dann verwenden wir eine Ceiling-Funktion das Dezimalsystem zu zwingen, auf die nächste nächste ganze Zahl zu aufrunden.

2,100 -> 3

Jetzt können wir die Nummer drei Plätze links wieder verschieben, so dass es von der ursprünglichen Größe ist.

3 -> 3000

Vbscript kann oder auch nicht eine Decke Funktion haben (here's an implementation of one und die anderen Funktionen sind einfache mathematische Operationen

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