2010-06-17 16 views
5

Estoy teniendo un problema con el código siguiente:cadena a flote la conversión - separador decimal

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

El segundo comando inicia una excepción FormatException. Sé que el problema es que las configuraciones de cultivo que estoy usando (cs-CZ) usan una coma como separador decimal y esta cadena contiene un punto decimal en su lugar.

¿Hay alguna manera fácil de "ignorar" la configuración cultural y siempre usar punto decimal para la conversión? ¿O debería simplemente evitar el problema marcando primero la secuencia y reemplazando la coma por el punto decimal?

Respuesta

19

Uso CultureInfo.InvariantCulture

float lat = Convert.ToSingle("50.09445", CultureInfo.InvariantCulture); 
2

Prueba la Convert.ToSingle(string, IFormatProvider) overload lugar, y pasarlo la referencia cultural invariable (o lo que sea CultureInfo usted quiere estar utilizando en su lugar):

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