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

_______________________________________________
Python-nl mailing list
Python-nl@python.org
http://mail.python.org/mailman/listinfo/python-nl

Antwoord per e-mail aan