[python-nl] grote getallen met grote precisie

Evert Rol evert.rol at gmail.com
Mon May 4 17:27:39 CEST 2009


>> Overigens heeft numpy nog een float128 type, maar ook daar zul je  
>> vinden dat
>>>>> a = numpy.float128(1e22+1)
>>>>> b = numpy.float128(1e22)
>>>>> a == b
>> True
>
> Niet valsspelen, je moet de optelling natuurlijk wel in float128 doen
> en niet in Python float (64).

Oeps, even over het hoofd gezien.

En ik denk dat je er een 64 bits platform voor moet hebben, want
 >>> numpy.float128(1.e22) + numpy.float128(1.) - numpy.float128(1.e22)
0.0
op mijn 32bit Mac.

Tenminste, ik zou denken dat ~30 significante cijfers genoeg zou  
moeten zijn voor dit probleem.


>  64 bit floats met 53 bit mantissa zijn
> voldoende voor 17 cijfers. 128 bits moet dus zeker meer dan 30 cijfers
> zijn.
>
> Rob



More information about the Python-nl mailing list