Tôi có hai ngày và có thể tính toán timedelta như bình thường.Timedelta nhân với float trong python
Nhưng tôi muốn để tính toán một số phần trăm với kết quả timedelta:
full_time = (100/percentage) * timdelta
Nhưng có vẻ như nó chỉ có thể nhân với interegs.
Tôi làm cách nào để sử dụng float
thay vì int
làm hệ số?
Ví dụ:
percentage = 43.27
passed_time = fromtimestamp(fileinfo.st_mtime) - fromtimestamp(fileinfo.st_ctime)
multiplier = 100/percentage # 2.3110700254217702796394730760342
full_time = multiplier * passed_time # BUG: here comes exception
estimated_time = full_time - passed_time
Nếu được sử dụng int(multiplier)
- Độ chính xác bị.
Bạn đúng, timedelta chỉ hỗ trợ phép nhân hoặc chia với bộ ngắt, nhưng tại sao bạn không thực hiện các phép toán theo từng bước? 'full_time = passed_time * 100/int (phần trăm)' –
@Colin O'Coal, vì độ chính xác: '2! = 2.3131'. So sánh: '571 * 2 = 1142' (** 19 **, 03 (3) phút); '571 * 2,3131 = 1320,7801' (** 22 **, 0130016 (6) phút). Sự khác biệt là khoảng ** 3 phút ** (!) –