Trunking Double mit VBA in Excel

8

Ich muss die Anzahl der Dezimalstellen meines doppelten Wertes für die Anzeige in einem Textfeld abschneiden. Wie würde man das mit VBA erreichen?

    
Ehudz 05.07.2012, 15:33
quelle

4 Antworten

7

Sie können entweder ROUND für FORMAT in VBA

verwenden

Zum Beispiel, um 2 Dezimalstellen anzuzeigen

%Vor%

Hinweis : Mit dem obigen Befehl erhalten Sie 1.57 . Also, wenn Sie nach 1.56 suchen, dann können Sie das Dval in einer Zeichenfolge speichern und dann tun dies

%Vor%     
Siddharth Rout 05.07.2012, 15:37
quelle
8

Wenn Sie den Wert runden möchten, können Sie die Funktion "Runden" verwenden (aber beachten Sie, dass die Rundungsfunktion von VBA die Rundung des Bankers verwendet, auch Round-to-Even genannt) a 5 auf oder ab; zum Runden mit traditionellen Rundungen verwenden Sie Format).

Wenn Sie den Wert ohne Rundung abschneiden möchten, müssen Sie keine Zeichenfolgen wie in der akzeptierten Antwort verwenden - verwenden Sie einfach math:

%Vor%

Dies ergibt "2.34".

    
Gary McGill 20.11.2014 09:52
quelle
4

Sie können die Funktion Int () verwenden. Debug.print Int(1.99543)

Oder besser:

%Vor%

Sie können also Trunc(1.99543, 4) == & gt; result: 1.9954

    
Makah 23.03.2015 17:17
quelle
0

So lustige Geschichte. Ich habe mit einer schnellen VB-Konvertierungsfunktion herumgespielt. Ich möchte nur ein Double in eine ganze Zahl schneiden.

%Vor%

Super, etwas in VB hat tatsächlich funktioniert.

Hoppla, ich habe vergessen, dass es nicht mit negativen Zahlen funktioniert

%Vor%

... ja, das ist einfach passiert. VB verwendet Banker-Rundung.

%Vor%

Wenn Sie bestimmte Dezimalstellen haben wollen, tun Sie, was Makah nur mit Abs um den Wert getan hat, damit Int richtig abgeschnitten werden kann.

%Vor%     
HashSplat 21.11.2017 13:06
quelle

Tags und Links