C# Wie Kann ein String in ein float umwandeln?

2 Antworten

Am Besten verwendest Du das hier:

string eineZahl = "1.235";
float number = 0;
if (!float.TryParse(eineZahl, out number)) {
   // Behandle den Fall, dass es ein ungültiger Wert war
}

Float.Parse oder Convert.ToFloat werfen Exceptions, wenn es nicht geht. Da ist obiger Code defensiver, weil Du direkt davon ausgehen kannst, dass es auch mal nicht klappt - besonders, wenn die Zahl vom User eingegeben wird.

Beachte auch, dass die Konvertierung immer vom im System eingestellten Zahlenformat ausgeht (in Deutschland also vom "," als Dezimaltrenner). Wenn Du explizit ein bestimmtes Format möchtest (z.B. weil die Zahlen immer in US-Notation kommen), musst Du explizit die CultureInfo angeben.

Beispiel:

var usculture = new CultureInfo("en-US");
string eineZahl = "1.234";
float number = 0;
if (!float.TryParse(eineZahl, System.Globalization.NumberStyles.Number, usculture, out number)) { ... }
float f1 = float.Parse(<string>)

DANIELdjldqwj 
Beitragsersteller
 13.10.2022, 08:59

Wenn ich das benutze kommt "CS1525 C# Invalid expression term 'string'"

DANIELdjldqwj 
Beitragsersteller
 13.10.2022, 09:05
@ohwehohach

Ich habe davon nicht sonderbar viel Ahnung ich mach nochmal ne Neue Frage wait