tôi có một danh sách Python chỉ điền với phao:Vòng nổi xuống bằng Python để giữ một không phi thập phân chỉ
list_num = [0.41, 0.093, 0.002, 1.59, 0.0079, 0.080, 0.375]
tôi cần phải làm tròn danh sách này xuống để có được:
list_num_rounded = [0.4, 0.09, 0.002, 1.5, 0.007, 0.08, 0.3]
Sự cố: Làm tròn từ 1.59 đến 1.5 thật dễ dàng. Tuy nhiên, vấn đề của tôi là với phao được ít hơn 1.
Câu hỏi: Về cơ bản, tôi cần phải làm tròn tất cả nổi xuống để: nếu float là < 1, sau đó phiên bản tròn chỉ chứa một phi số không. Có cách nào để làm điều này trong Python 2,7?
EDIT:
Attempt: Dưới đây là những gì tôi đã cố gắng:
list_num_rounded = []
for elem in list_num:
if elem > 0.01 and elem < 0.1:
list_num_rounded.append(round(elem,2))
if elem > 0.001 and elem < 0.01:
list_num_rounded.append(round(elem,3))
elif elem > 0.1:
list_num_rounded.append(round(elem,1))
Tuy nhiên, điều này mang lại:
[0.4, 0.09, 0.002, 1.6, 0.008, 0.08, 0.4]
Nó được làm tròn 1,59, 0,79 và 0,375 lên , nhưng tôi cần một cách để chỉ làm tròn xuống. Có cách nào để làm việc này không?
CHỈNH SỬA 2:
Danh sách sẽ không chứa phao âm. Chỉ có phao dương mới có mặt.
Tôi đã cập nhật bài đăng gốc. Sẽ không có nổi âm trong danh sách. Về con số> 1, xin lỗi tôi nghĩ rằng tôi không hiểu. Bạn đã có một số> 1 trong ví dụ của mình ---> 1.59. Giải pháp của bạn hoạt động cho điều này - chính xác? –
Tôi dường như không thể tìm ra con số> 1. Tui bỏ lỡ điều gì vậy? –
Có, tôi thấy 1.59 trong dữ liệu mẫu. Nhưng, ví dụ, những gì hiện 1059.56 vòng đến? Tôi giả định nó sẽ làm tròn xuống 1 chữ số thập phân (như vậy 1059,5). – reupen