[issue2140] calculation bug in long() function

Markus Stoll report at bugs.python.org
Mon Feb 18 13:55:37 CET 2008


Markus Stoll added the comment:

thank you for fast reply

I see the point and do not want to argue about that (rounding is fine  
for me). I just think this behaviour makes the long() function pretty  
much useless.

Regards, Markus
Am 18.02.2008 um 13:25 schrieb Facundo Batista:

>
> Facundo Batista added the comment:
>
> In short:
>
>>>> long(100 * 146.95)
> 14694L
>
> This is NOT a bug, but a behaviour of binary floating point:
>
>>>> 146.95
> 146.94999999999999
>
> In binary you can not express this number exactly.
>
>>>> 146.95 * 100
> 14694.999999999998
>
> When you long() that, you truncate the number, so it goes to 14694.
>
> Please address further discussion through python-list.
>
> Thanks!
>
> ----------
> nosy: +facundobatista
> resolution:  -> invalid
> status: open -> closed
>
> __________________________________
> Tracker <report at bugs.python.org>
> <http://bugs.python.org/issue2140>
> __________________________________

__________________________________
Tracker <report at bugs.python.org>
<http://bugs.python.org/issue2140>
__________________________________


More information about the Python-bugs-list mailing list