Conversion code not working properly

Andrei fake at fake.net
Sun Feb 22 14:32:50 EST 2004


weasel wrote on Sun, 22 Feb 2004 19:07:01 GMT:

> Why is the Farenheit to Celsius part not working properly? Instead of
> showing a similar range of what the farenheit is listing, the celsius
> portion is showing half the range of farenheit.

Try this in your interactive interpreter:

>>> 9/5

What's odd about the result? "/" does integer division. It's weird and
unexpected to lots of people, but it's the way it is - it will be fixed in
due time. However, due to some time machine Guido is said to possess, you
can already use the future behavior by doing this:

from __future__ import division

Then try 9/5 again. Integer division is "//" now, while "/" behaves as
floating-point division.

Alternatively, you could use a floating-point number instead of integers.
Try this in a clean interpreter session (without the from __future__
thing):

>>> 9.0/5
>>> 9/5.0
>>> 9.0/5.0

<snip>         
>         low_other_temp = (9 / 5 * low) + 32
>         high_other_temp = (9 / 5 * high) + 32
>         rnge = range(low, high + 1)
>         faren = range(low_other_temp, high_other_temp + 1)  
>         print rnge
>         print faren
>    
>     elif temp == 'F' and low <= high:
> 
>         num1 = low - 32
>         num2 = high - 32
>         low_temp = num1 * 5/9
>         high_temp = num2 * 5/9
>         rnge = range(low, high + 1)
>         celsi = range(low_temp, high_temp + 1)
>         print rnge
>         print celsi
<snip>

-- 
Yours,

Andrei

=====
Real contact info (decode with rot13):
cebwrpg5 at jnanqbb.ay. Fcnz-serr! Cyrnfr qb abg hfr va choyvp cbfgf. V ernq
gur yvfg, fb gurer'f ab arrq gb PP.



More information about the Python-list mailing list