int((9.2-9.0)*10) is 1, int((9.21-9.0)*10) is 2, why?

John Machin sjmachin at lexicon.net
Fri Sep 5 09:29:54 EDT 2008


On Sep 5, 11:12 pm, bcm <bluecrysta... at gmail.com> wrote:
> Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit
> (Intel)] on win32
> The following line of code describes an  funny question:>>> int((9.2-9.0)*10)
> 1
> >>> int((9.21-9.0)*10)
> 2
> >>> int((9.1-9.0)*10)
> 0
> >>> int((9.11-9.0)*10)
> 1
> >>> int((8.2-8.0)*10)
> 1
> >>> int((8.23-8.0)*10)
>
> 2
>
> why? anybody can explain it?


Try looking one step at a time:
>>> 9.2
9.1999999999999993

That wasn't hard, was it? Do you need any further explanation? If so,
look here:
http://docs.python.org/tut/node16.html





More information about the Python-list mailing list