Questo mi sta facendo impazzire. Ho la seguente stringa in una pagina WebForm ASP.NET 2.0Double.Parse - Internationalization problem
string s = "0.009";
Abbastanza semplice. Ora, se la mia cultura è lo spagnolo - che è "es-ES" - e cerco di convertire la stringa in doppio, mi effettuare le seguenti operazioni:
double d = Double.Parse(s, new CultureInfo("es-ES"));
quello che mi aspetto è 0,009. Invece, ottengo 9. Capisco che .NET pensi che sia un separatore di migliaia, che in en-US è una virgola, ma non dovrebbe prendere le informazioni sulla cultura che sto passando al metodo di analisi e applicare il formato corretto a la conversione?
Se faccio
double d = 0.009D;
string formatted = d.ToString(new CultureInfo("es-ES"));
formattato è ora 0,009. Chiunque?
Maggiori informazioni su questo e molti altri problemi con la localizzazione come su http://www.moserware.com/2008/02/does-your-code-pass-turkey-test.html –