2010-06-17 6 views
5

Je vais avoir un problème avec le code suivant:chaîne à flotteur conversion - séparateur décimal

string latString = "50.09445"; 
float lat = Convert.ToSingle(latString); 

La deuxième commande renvoie une exception FormatException. Je sais que ce problème est que les paramètres de culture que j'utilise (cs-CZ) utilisent une virgule comme séparateur décimal et cette chaîne contient à la place un point décimal.

Existe-t-il un moyen simple d '"ignorer" les paramètres de culture et d'utiliser toujours le point décimal pour la conversion? Ou devrais-je simplement éviter le problème en vérifiant la chaîne en premier et remplacer la virgule par le point décimal?

Répondre

19

Utilisez CultureInfo.InvariantCulture

float lat = Convert.ToSingle("50.09445", CultureInfo.InvariantCulture); 
2
string latString = "50.09445"; 
float lat = float.Parse(latString, CultureInfo.InvariantCulture); 
1
Single.Parse(latString, System.Globalization.CultureInfo.InvariantCulture); 
Questions connexes