wie wandel ich "0.666" in 0.666 um?

fzimmermann

Grünschnabel
Hi,
ich möchte einen String, der den Wert "0.666" hat, in eine Single-Variable konvertieren.
Folgende Lösungen funktionieren NICHT:
dim text as string
dim erg as double
1 . erg=cdbl(text) -> gibt erg=0 zurück
2. erg=val (text) -> ist abhängig von dem in Windows eingestellten Zahlenformat, d.h. bei der deutschen einstellung "123.456,7" funktioniert es nicht , da "." als 1000er Trennzeichen ignoriert wird. Stellt man jedoch auf die Schreibweise "123,456.8" um, funktioniert es. Dieser Weg ist jawohl nicht ganz so sauber, da man den user zwingen müsste, die Windows-Einstellungen zu ändern

Deshalb frage ich mich
1. ob es eine andere Funktion für diese Aufgabe gibt
2. ob ich vb davon überzeugen kann, in dem Programm die Schreibweise "123,456.8" zu benutzen
3. oder ob es eine andere Möglichkeit gibt, das Problem zu beseitigen. Hierzu im Vorraus: Es ist nicht möglich, die Aufgabe zuumgehen und nur "0,666" zu benutzen, da die Schreibweise "0.666" sein muss

TiA
Felix Zimmermann
 
Ich könnte mich auch täuschen, aber versuchs doch mal mit dem Format-Befehl.

Lies mal in der MSDN nach, was der so macht.

Ich könnte mir vorstellen, dass deine Anweisungen kombiniert mit FORMAT( ) etwas bringen können.

Gruß
III
 
wie in C usw kann man datentypen bei VB(6) casten:


zahlenwert in string: CStr(dieZahl)
string in zahlenwert: CInt;CLng;CDbl...(derString)
auch string oder zahlenwert in boolean geht: CBool(derString oder dieZahl)



"123,456.8" würd ich so ändern:

dim var as double

var = CDbl(replace("123,456.8", ",",""))

das würde jetzt als beispiel
eine doublevariable mit wert 123456.8 rausgeben
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück