Mam dwie daty i mogę obliczyć timedelta jak zwykle.Timedelta mnożyć z pływakiem w pytonie
Ale chcę, aby obliczyć jakiś procent z wynikającą timedelta:
full_time = (100/percentage) * timdelta
Ale wydaje się, że może to tylko pomnożenie z interegs.
Jak używać jako mnożnika float
zamiast int
?
przykład:
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
Jeśli stosuje się int(multiplier)
- dokładność cierpi.
Masz rację, timedelta obsługuje tylko mnożenie lub dzielenie z intergers, ale dlaczego nie wykonywać operacje matematyczne w kroku sekwencji po kroku? 'full_time = czas przeszły * 100/int (procent)' –
@Colin O'Coal, z powodu dokładności: '2! = 2,3131'. Porównaj: '571 * 2 = 1142' (** 19 **, 03 (3) minut); '571 * 2,3131 = 1320,7801'' (** 22 **, 0130016 (6) minut). Różnica wynosi około ** 3 minut ** (!) –