Он не замеряет размер постоянно. Он замеряет время, которое ему примерно понадобится. Засекает, сколько прошло с начала, вот тебе и %. И этот процент применяет к общему объёму файла, так показывает, сколько уже скачал. А поскольку где-то в расчётах был float, все int при операциях с ним неявно преобразовались к float
Он не замеряет размер постоянно. Он замеряет время, которое ему примерно понадобится. Засекает, сколько прошло с начала, вот тебе и %. И этот процент применяет к общему объёму файла, так показывает, сколько уже скачал. А поскольку где-то в расчётах был float, все int при операциях с ним неявно преобразовались к float