2008-09-15 65 views

Trả lời

50
Double.Parse("1.234567E-06", System.Globalization.NumberStyles.Float); 
+0

Ngay trên Will. Cám ơn. – odbasta

+13

Sẽ không hoạt động nếu dấu phân cách thập phân của văn hóa hiện tại không phải là '.'. Vì vậy, cách tiếp cận luôn làm việc là sử dụng 'NumberStyles.Any' hoặc (tốt hơn) force' InvariantCulture': 'Double.Parse (" 1.234567E-06 ", NumberStyles.Float, CultureInfo.InvariantCulture);' –

+0

Lưu ý rằng nếu bạn tack a. ToString() khi kết thúc thủ tục này gọi nó sẽ trả về ký pháp khoa học chứ không phải một chuỗi các chữ số duy nhất. Tôi cần phải bao gồm một tham số chuỗi định dạng ("0.0000") trong cuộc gọi .ToString() để làm cho định dạng nổi chính xác. –

11

Cũng xem xét sử dụng

Double.TryParse("1.234567E-06", System.Globalization.NumberStyles.Float, out MyFloat); 

này sẽ đảm bảo rằng MyFloat được thiết lập để đánh giá 0 nếu vì bất cứ lý do nào, việc chuyển đổi có thể không được thực hiện. Hoặc bạn có thể bọc ví dụ Double.Parse() trong một khối Try..Catch và đặt MyFloat thành giá trị bạn chọn khi phát hiện ngoại lệ.

+17

Bạn không muốn dựa vào MyFloat là 0 để biểu thị một chuyển đổi không thành công, bạn muốn dựa vào giá trị trả về bool. – Carl

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