Làm cách nào để chuyển đổi một chuỗi thành gấp đôi trong Python?


Câu trả lời:


316
>>> x = "2342.34"
>>> float(x)
2342.3400000000001

Có bạn đi. Sử dụng float (hoạt động giống và có độ chính xác tương tự như C, C ++ hoặc Java double).


38
Hay cụ thể hơn, phao Python là C nhân đôi.
thói quen

1
Bah dùng phao thay vì gấp đôi. bây giờ mã của tôi bị tắt bởi .0000000001, điều đó rất đau
Evorlor

2
tình cờ, điều này cũng hoạt động với ký hiệu số mũ. vd: float('7.5606e-08')sản xuất phao trăn dự kiến.
drevicko

2
Với con trăn của tôi (phiên bản 2.7.10), khi tôi gán >>> x = "2342.34" và chuyển đổi thành float, >>> float(x) tôi nhận được 2342.34thay vì 2342.3400000000001báo cáo của @Mongoose
Bruce_War

Sử dụng >>> 0.1 + 0.2cho đôi. >>> 0.1 + 0.6cho phao.
dùng1510539

50

Toán tử thập phân có thể phù hợp hơn với những gì bạn đang tìm kiếm:

>>> from decimal import Decimal
>>> x = "234243.434"
>>> print Decimal(x)
234243.434

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.