float problem

Peter Maas fpetermaas at netscape.net
Thu Mar 18 06:01:18 EST 2004


Tomasz Stochmal schrieb:
> The problem is that when I call float('713566671863.6850') I get
> 713566671863.68506 - when rounding to 4 becomes 713566671863.6851
> 
> Output becomes 7135666718636851 but it should be 7135666718636850 
> 
> Last digit is 1 but should be 0 which is wrong !
> 
> How do I do it ?

I think it' impossible because you operate at the border of the
IEEE754 float8 precision.

struct.pack("d", 713566671863.68506)
and
struct.pack("d", 713566671863.6851)

will yield the same result:
'\xec\xf5~j|\xc4dB'

which means that the two float literals are represented by the
same 64bit string. I you want arbitrary precision use Python's
long integers.

Mit freundlichen Gruessen,

Peter Maas

-- 
-------------------------------------------------------------------
Peter Maas, M+R Infosysteme, D-52070 Aachen, Hubert-Wienen-Str. 24
Tel +49-241-93878-0 Fax +49-241-93878-20 eMail peter.maas at mplusr.de
-------------------------------------------------------------------



More information about the Python-list mailing list