Hallo Michael,

Or anything which converts to double early.

Are you sure, seeing elapsed is a double already?


Argh, I missed that. You are right that a double elapsed is enough for the second part. However, with

 +  current_speed = (current_size / MEGABYTES) / (elapsed / 1000.0);

the first division is an integer one because both operands are ints, so megabytes conversion is rounded down. I'd suggest:

 +  current_speed = ((double) current_size / MEGABYTES) / (elapsed / 1000);

If I print out two additional fractional digits for current_speed, I get two non-zero numbers, are those garbage?

Nope, they come from the other divisions, but the fist division will have wipped out 0.5 MiB on average.

Ok, it is more complicated that it looks for large sizes if second is not
the right display unit.

Right, new version attached.

Applies, compiles, global & local "make check" (although not tested) ok, doc build ok, manual tests ok.

Otherwise a very minor comment: I'd invert !force and the computations in the return condition to avoid the computations when not needed.

--
Fabien.


Reply via email to