However, you should be carefully because using an %i modifier for a
what-should-be a float value truncates the value in a way you may not
expect.
What I mean is that if you have sent 2 out of 3 bytes, the math will be
200/3 which with the %i modifier will print 66, rather than 66.6 (or at
least 67 which is closer - have a look at the round() function).
Another thing, you could have just added a dot after the constant in
order to promote the expression to be evaluated as float. As in
percentage = bytes_transferred / /self/.__sessions[path].total_bytes
* 100.
(notice the last dot)
Fredrik Lundh wrote:
Robert Rawlins wrote:
I’ve got what seems to me to be a totally illogical math issue here
which I can’t figure out. Take a look at the following code:
/self/.__logger.info(/"%i / %i"/ % (bytes_transferred,
/self/.__sessions[path].total_bytes))
percentage = bytes_transferred /
/self/.__sessions[path].total_bytes * 100
/self/.__logger.info(/"%i"/ % percentage)
Seems fairly straight forward, you would think. It takes two values
and calculates the percentage of one from the other, however,
percentage always comes back as ‘0’ for some reason, look at this log
output.
if you divide two integers, you'll get an integer back (in Python 2.X,
at least). quick fix:
percentage = bytes_transferred * 100 / total_bytes
</F>
--
http://mail.python.org/mailman/listinfo/python-list
--
http://mail.python.org/mailman/listinfo/python-list