2012-07-03 9 views
17

Cuando traté de convertir algo como 0.1 (del usuario en el cuadro de texto), My value b siempre es falso.Decimal.TryParse no analiza mi valor decimal

bool b = Decimal.TryParse("0.1", out value); 

¿Cómo puede estar aquí para trabajar?

+0

Whats ¿La excepción? – HatSoft

+9

¿Cuál es su localidad? – penartur

+0

me funciona, ¿mencionaste el valor antes de usarlo? –

Respuesta

8

demasiado tarde a la fiesta, pero yo iba a sugerir que obligó al culuture en-US, pero invariante es una mejor sln

decimal value; 
bool b = Decimal.TryParse("0.1", NumberStyles.Any, new CultureInfo("en-US"), out value); 
10

Uso Culture en el método de sobrecarga

+1

es flashmob =) –

39

especificar la referencia cultural para el análisis. Su cultura actual usa un formato numérico diferente, probablemente 0,1.

Esto analizar correctamente la cadena:

bool b = Decimal.TryParse("0.1", NumberStyles.Any, CultureInfo.InvariantCulture, out value); 
+0

Esta es la solución real –

Cuestiones relacionadas