Tengo dos fechas y puedo calcular timedelta como de costumbre.Timedelta se multiplica con flotador en python
Pero quiero para calcular algunos ciento con timedelta resultante:
full_time = (100/percentage) * timdelta
pero parece que sólo puede multiplicarse con interegs.
¿Cómo puedo usar float
en lugar de int
como multiplicador?
Ejemplo:
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
Si se utiliza int(multiplier)
- exactitud sufre.
Tiene razón, timedelta solo admite la multiplicación o división con intergers, pero ¿por qué no realiza las operaciones matemáticas en secuencia paso a paso? 'full_time = passed_time * 100/int (percentage)' –
@Colin O'Coal, debido a la precisión: '2! = 2.3131'. Compare: '571 * 2 = 1142' (** 19 **, 03 (3) minutos); '571 * 2.3131 = 1320,7801' (** 22 **, 0130016 (6) minutos). La diferencia es aproximadamente ** 3 minutos ** (!) –