Discussion:
Zahlen mit führender Null ausgeben
(zu alt für eine Antwort)
Gerhard Fobe
2003-12-20 23:42:44 UTC
Permalink
Hallo NG

Wenn ich eine Zahl aus einer z.B. Integer-Variablen auf ein Label schreibe
wird die Zahl ohne fürhrende Null angegeben, also .43 statt 0.43. In QBasic
konnte ich dies noch mit PRINT USING "#.##" bewerkstelligen. Wie kann ich
dieses Problem nun in VB6 lösen? Danke im Voraus.

Gerhard Fobe
Thomas Wendt
2003-12-21 00:27:58 UTC
Permalink
Post by Gerhard Fobe
Hallo NG
Wenn ich eine Zahl aus einer z.B. Integer-Variablen auf ein Label schreibe
wird die Zahl ohne fürhrende Null angegeben, also .43 statt 0.43. In QBasic
konnte ich dies noch mit PRINT USING "#.##" bewerkstelligen. Wie kann ich
dieses Problem nun in VB6 lösen? Danke im Voraus.
Hallo Gerhard

Benutze Format$(Zahl, "#,##0.00")

Siehe in der VB Hilfe unter Format$ nach.

HTH

Gruß
Thomas
Gerhard Fobe
2003-12-21 14:31:37 UTC
Permalink
Danke

Gerhard Fobe

Herfried K. Wagner [MVP]
2003-12-21 00:59:59 UTC
Permalink
Hallo Gerhard!
Post by Gerhard Fobe
Wenn ich eine Zahl aus einer z.B. Integer-Variablen auf ein Label schreibe
wird die Zahl ohne fürhrende Null angegeben, also .43 statt 0.43. In QBasic
konnte ich dies noch mit PRINT USING "#.##" bewerkstelligen. Wie kann ich
dieses Problem nun in VB6 lösen? Danke im Voraus.
Funktion 'Format', wobei anstelle des "#" das Zeichen "0" verwendet
wird. Siehe Hilfe für genauere Informationen.
--
Herfried K. Wagner [MVP]
<http://www.mvps.org/dotnet>
Peter Götz
2003-12-21 08:22:59 UTC
Permalink
Hallo Gerhard,
Post by Gerhard Fobe
Wenn ich eine Zahl aus einer z.B. Integer-Variablen auf ein Label schreibe
Label.Caption erwartet einen String. Es ist also gar nicht möglich, einen
Wert vom Typ Integer in ein Label-Control zu schreiben.
VB wendet dabei ohne dass Du es bemerkst, die automatische Typumwandlung an
und macht aus dem Wert vom Typ Integer einen String.

Dim intWert as Integer

intWert = 1234
Label.Caption = 1234

funktioniert zwar, aber VB macht daraus tatsächlich dieses:

Label.Caption = cStr(1234)
Post by Gerhard Fobe
wird die Zahl ohne fürhrende Null angegeben, also .43 statt 0.43. In QBasic
konnte ich dies noch mit PRINT USING "#.##" bewerkstelligen. Wie kann ich
dieses Problem nun in VB6 lösen? Danke im Voraus.
Wie Du ja schon erfahren hast, kannst Du einen numerischen Wert mit Hilfe
der Format$()-Funktion zu einer Zahlendarstellung in einem String umwandeln
und dabei auch eine Formatierung anwenden.

Label.Caption mit führenden Nullen auf 6 Stellen auffüllen.

Label.Caption = Format$(1234, "000000")

Ich würde Dir dringend empfehlen, mal die Online-Hilfe zu den verschiedenen
Datentypen sowie zu den Umwandlungsfunktionen cByte(), cInt(), cLong(),
cSng(), cDBL(), cCur() u. cDec() sowie zu Val() und Str() und cStr()
anzusehen.

Wenn Du ein stabil laufendes Programm haben willst, solltest Du es auf
keinen Fall VB überlassen, per automatischer Typumwandlung Strings zu
numerischen Werten und umgekehrt num. Werte zu Strings umzuwandeln.

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tips u. Beispielprogrammen)
Loading...