2012-07-03 14 views
17

Quando ho provato a convertire qualcosa come 0.1 (da utente nella casella di testo), Il mio valore b è sempre falso.Decimal.TryParse non analizza il mio valore decimale

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

Come può essere qui lavorare?

+0

Whats l'eccezione? – HatSoft

+9

Qual è il tuo locale? – penartur

+0

funziona per me, hai menzionato il valore prima di usarlo? –

risposta

8

Troppo tardi per il partito, ma stavo per suggerire costringendo il culuture su en-US, ma non modificabili è una migliore SLN

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

Usa Culture in overload del metodo

+1

it's flashmob =) –

39

Specificare la cultura per l'analisi. La tua cultura corrente utilizza un formato numerico diverso, probabilmente 0,1.

Ciò analizzare correttamente la stringa:

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

Questa è la vera soluzione –

Problemi correlati