Ich habe zwei Daten und kann wie üblich Timedelta berechnen.Timedelta Multiplikation mit Float in Python
Aber ich möchte einige Prozent mit daraus resultierenden Timedelta berechnen:
full_time = (100/percentage) * timdelta
Aber es scheint, dass es nur mit interegs multiplizieren kann.
Wie kann ich float
anstelle von int
als Multiplikator verwenden?
Beispiel:
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
Wenn verwendet int(multiplier)
- Genauigkeit leidet.
Sie haben Recht, Timedelta unterstützt nur Multiplikation oder Division mit Intergers, aber warum führen Sie nicht die mathematischen Operationen in der Reihenfolge Schritt für Schritt? 'full_time = passed_time * 100/int (in Prozent)' –
@Colin O'Coal, wegen der Genauigkeit: '2! = 2.3131'. Vergleiche: '571 * 2 = 1142' (** 19 **, 03 (3) Minuten); '571 * 2,3131 = 1320,7801 '(** 22 **, 0130016 (6) Minuten). Unterschied ist ca. ** 3 Minuten ** (!) –