WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Visual Basic --> Kommastellen (http://www.wcm.at/forum/showthread.php?t=130614)

Sesa_Mina 11.04.2004 17:24

Da gibt es doch nen speziellen Datentyp CURRENCY den du verwenden kannst. Hat per default nur 2 Nachkommastellen.

Dim EineZahl As Currency

EineZahl = 9.8765432

Debug.Print EineZahl

sollte 9.87 rauskommen.


Alternative:

Private Function Abschneid(Was As Double) As Double
Abschneid = Val(Left$(Trim(Str(Was)), InStr(1, Trim(Str(Was)), ".") + 2))
End Function

Aufruf: Debug.Print Abschneid(9.87654321)
Ausgabe: 9.87

Potassium 11.04.2004 17:28

mh ok das is kürzer :D

Sesa_Mina 11.04.2004 17:30

RegExp kann VB ja leider nicht.. sonst wärs ein noch kürzerer Klammerwald...

PunkTey 12.04.2004 11:12

muhaha ich brauch die variablen die ich auf zwei kommastellen will nur auf currency deklarieren und das wars?
füllt er mir die dann auch auf zwei kommastelen auf, wenn die zweite kommastelle eine 0 ist? =) das wär nämlich auch sehr wichtig .. sonst hats keinen sinn :)

Sesa_Mina 12.04.2004 11:26

wenn du unbedingt 2 Nachkommastellen brauchst machst du nen string aus der zahl und zwar..


Text = Format(Zahl,"0.00")

Das gibt dir dann die Zahl als Text immer mit 2 Nachkommastellen.

Hab nachgeschaut.. Currency limitiert auf 4 Nachkommastellen.

PunkTey 12.04.2004 18:59

okayy .. danke :)

reemrev 13.04.2004 16:28

Den Umweg über den Text braucht man nicht
einfach: Zahl1=format(Zahl,"0.00")
wobei Zahl1 derselbe Datentyp wie Zahl ist

Sesa_Mina 13.04.2004 16:43

@reemev

wenn du 2.3 als 2.30 ausgeben willst musst den umweg über den typ string nehmen. Weil bei Zahl schneidet vb die nullen ja weg bei der ausgabe.

reemrev 13.04.2004 16:58

Stimmt, hast recht. Wenn man die neue Zahl als Variant definiert, müsste es aber funktionieren. Macht aber keinen Unterschied mehr, es sei denn, man möchte mit den neuen Zahlen weiterrechnen(?).

PunkTey 13.04.2004 18:37

ja ich hab in dem prog insgesmt 92 variablen. wenn ich diese format anweisung nehme .. so wie du sie da hingeshrieben hast .. müsste ich ja dann nochmal extra für jede variable ne zweite machen (so hab ichs versatnden)

aba natürlich rechne ich danach mit den zahlen weiter. und da sollten halt alle in nem kaufmännischen format sein. weil es ein scheiß is .. wenn die zahlen dann mal eine haben und dann mal zwei stellen und das sieht dann blöd aus und dann stehen die zehner mal bei den hunderten und umgekehrt und das soll schon untereinander immer die gleiche stelle stehen :D

also auffüllen auf zwei und abschneiden. das es halt immer zwei sind, egal obs 50 euro sind oder 50,678 .. es müssen zwei sein :D und darf ned gerundet werden, weil das ja ne preis verfälschung wäre, wenn ich statt 4,446 (4,44) aufeinmal 4,45 zahl :D


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag