Tôi đang viết chuỗi tùy chỉnh cho trình xác thực thập phân cần sử dụng Decimal.TryParse bỏ qua văn hóa (nghĩa là không quan tâm nếu đầu vào chứa "." Hoặc "," làm dấu thập phân dấu phân tách). Đây là phương pháp được đề xuất:Văn bản bất biến Decimal.TryParse()
public static bool TryParse(
string s,
NumberStyles style,
IFormatProvider provider,
out decimal result
)
Tôi không thể xác định được nên sử dụng làm thông số thứ 3. Các ví dụ tôi đã nhìn thấy như sau:
culture = CultureInfo.CreateSpecificCulture("en-GB");
Decimal.TryParse(value, style, culture, out number)
để chúng tạo ra một nền văn hóa cụ thể. CultureInfo không có phương thức "CreateInvariantCulture" và CultureInfo.InvariantCulture không thuộc loại được yêu cầu. Cách sử dụng chính xác là gì?
Từ [Tài liệu Microsoft] (https://msdn.microsoft.com/en-us/library/9zbda557 (v = vs.110) .aspx) có vẻ như .NET chuyển sang cài đặt hệ thống cục bộ của bạn nếu bạn không chỉ định văn hóa: 'Tham số s được phân tích bằng cách sử dụng thông tin định dạng trong đối tượng NumberFormatInfo được khởi tạo cho văn hóa hệ thống hiện tại.' –
Phân tích cú pháp 1,5 đến 15 không thực sự chính xác, phải không? Nếu ',' là dấu phân cách hàng nghìn thì không được phép ở vị trí 10. Tôi nghĩ rằng phân tích cú pháp 1,5 bằng cách sử dụng phân tích cú pháp bất biến văn hóa sẽ thất bại. –