Điều này khiến tôi phát điên. Tôi có chuỗi sau trong một ASP.NET 2.0 WebForm PageDouble.Parse - Vấn đề quốc tế hóa
string s = "0.009";
Đủ đơn giản. Bây giờ, nếu văn hóa của tôi là Tây Ban Nha - đó là "es-ES" - và tôi cố gắng để chuyển đổi chuỗi thành đôi, tôi làm như sau:
double d = Double.Parse(s, new CultureInfo("es-ES"));
những gì tôi mong đợi là 0.009. Thay vào đó, tôi nhận được 9. Tôi hiểu rằng NET nghĩ rằng nó là một dấu phân cách nghìn, mà trong en-US là dấu phẩy, nhưng không nên lấy thông tin văn hóa tôi đi qua phương pháp phân tích cú pháp và áp dụng định dạng đúng chuyển đổi?
Nếu tôi làm
double d = 0.009D;
string formatted = d.ToString(new CultureInfo("es-ES"));
định dạng tại là 0009. Có ai không?
Thông tin chi tiết về vấn đề này và nhiều vấn đề khác với bản địa hóa như tại http://www.moserware.com/2008/02/does-your-code-pass-turkey-test.html –