Sto cercando di analizzare una stringa come "$ 45,59" in un decimale. Per qualche motivo, ricevo un'eccezione sul fatto che l'input non era nel formato corretto. Non mi interessa di tutto il materiale di localizzazione perché non sarà un programma globale. Ecco cosa sto facendo. Vedi qualche problema?Problema che analizza il testo di valuta nel tipo decimale
NumberFormatInfo MyNFI = new NumberFormatInfo();
MyNFI.NegativeSign = "-";
MyNFI.NumberDecimalSeparator = ".";
MyNFI.NumberGroupSeparator = ",";
MyNFI.CurrencySymbol = "$";
decimal d = decimal.Parse("$45.00", MyNFI); // throws exception here...
E se si desidera utilizzare ancora il proprio 'NumberFormatInfo':' decimal d = decimal.Parse ("$ 45.00", NumberStyles.Currency, MyNFI); ' –
L'ha risolto. Vorrei solo capire perché il mio primo approccio non ha funzionato ... – PICyourBrain
La documentazione MSDN sugli stati Decimal.Parse: "Il parametro s viene interpretato usando lo stile NumberStyles.Number. Ciò significa che lo spazio bianco e i separatori di migliaia sono consentiti ma i simboli di valuta non lo sono Per definire esplicitamente gli elementi (come i simboli di valuta, i separatori di migliaia e lo spazio bianco) che possono essere presenti in s, utilizzare il metodo Decimal.Parse (String, NumberStyles, IFormatProvider). " –