Khi tôi cố gắng để chuyển đổi một chuỗi để một giá trị số với Parse hoặc TryParse hoặc Convert.ChangeType, tôi không thể quản lý de ngàn tách vì nó được định nghĩa trong hệ thống:String để chuyển đổi số và tách nhóm
nếu tôi nhập:
var d = double.Parse("1,234", CultureInfo.CurrentUICulture);
nó không trả lại 1234.
Nếu tôi muốn sử dụng tách nhóm, tôi phải gõ:
var d = double.Parse("1,234", NumberStyles.Number, CultureInfo.CurrentUICulture);
Lần này, kết quả là kết quả mong đợi.
Nhưng, tôi không muốn ép buộc sử dụng dấu phân tách nghìn, tôi chỉ muốn sử dụng nó nếu hệ thống chỉ định nó trong cài đặt toàn cầu hóa. Có cách nào để biết nếu tách được sử dụng (tôi biết rằng tôi có thể đọc các phân nhóm trong CultureInfo.CurrentUICulture.NumberFormat.NumberGroupSeparator
)
Cheers Loic
Có, nhưng trên thực tế, tôi muốn sử dụng hàm Convert.ChangeType để tạo chuỗi chung thành công cụ chuyển đổi số và cung cấp chuỗi đó dưới dạng tiện ích chuỗi. Nhưng Convert.ChangeType không có quá tải với tham số NumberStyles. Nó chỉ cho phép tham số IFormatProvider. Và bằng cách này, những gì tôi không hiểu là lý do tại sao thiết lập defaut cho Parse không đáp ứng các thiết lập quốc tế của hệ thống của tôi, nơi sử dụng phân tách nhóm được giải quyết. – Loic