2012-03-20 43 views
12

Tôi đang thử điều này trong hai ứng dụng; ứng dụng giao diện điều khiển và ứng dụng web.Double.Parse không cho kết quả chính xác

Trong ứng dụng giao diện điều khiển khi tôi cố gắng Double.Parse("0.5") nó mang lại cho 0,5 hoặc Double.Parse(".5") cho 0,5

Nhưng trong ứng dụng web Double.Parse("0.5") cho 5.0 và Double.Parse(".5") cho ngoại lệ

chuỗi đầu vào không phải là trong một định dạng chính xác.

Bất kỳ ai có thể cho biết cách giải quyết vấn đề trong ứng dụng web?

+1

Đăng mã chính xác mà bạn đang sử dụng. Nó không nên làm điều đó. –

+1

@Oded trong ứng dụng web, nó đang xử lý '.' làm dấu phân tách nghìn. –

Trả lời

26

Bạn nên cung cấp thông tin văn hóa nếu không nó sẽ sử dụng thông tin văn hóa từ chuỗi hiện đang chạy. Hãy thử thay vào đó:

CultureInfo cultureInfo = CultureInfo.InvariantCulture; // or whatever you prefer 
double result = double.Parse(".5", cultureInfo); 
+0

Dang, sẽ viết nhưng thấy câu trả lời của bạn. Chính xác và cho điểm. tốt đẹp! –

+1

Cảm ơn bạn @Mark. Nó đã làm việc. – MNVR

+2

Vâng, tôi đã nhấp vào nút Chấp nhận ngay lập tức sau (có thể là một giây chậm trễ: p) nó hoạt động nhưng SO yêu cầu tôi đợi 3 phút: ( – MNVR

Các vấn đề liên quan