Ho due date e posso calcolare il timedelta come al solito.Timedelta moltiplicare con float in python
Ma voglio calcolare alcuni cento con conseguente timedelta:
full_time = (100/percentage) * timdelta
ma sembra che si può solo moltiplicando con interegs.
Come è possibile utilizzare float
invece di int
come moltiplicatore?
Esempio:
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
Se viene utilizzato int(multiplier)
- precisione soffre.
Hai ragione, timedelta supporta solo la moltiplicazione o la divisione con interger, ma perché non eseguire le operazioni matematiche in sequenza passo dopo passo? 'full_time = tempo_passato * 100/int (percentuale)' –
@Colin O'Coal, a causa della precisione: '2! = 2.3131'. Confronta: '571 * 2 = 1142' (** 19 **, 03 (3) minuti); '571 * 2.3131 = 1320,7801' (** 22 **, 0130016 (6) minuti). La differenza è di circa 3 minuti ** (!) –