Es sieht fast so aus, als ob Rundungsfehler entstehen würden:
Code: Alles auswählen
print (100000000000000000000000*(float(169)/float(13))).__repr__()
gibt nur 1.2999999999999999e+24 aus.
Anderseits lässt sich das Zeugs auch nicht anständig runden:
Code: Alles auswählen
import math as m
print (100000000000000000000000*(m.floor(float(169)/float(13)+0.5))).__repr__()
gibt ebenfalls nur 1.2999999999999999e+24 aus.
Ich arbeite derzeit mit floats (funktioniert fein), muss aber darauf achten,
dass sich meine Rundungsfehler im Extremfall nicht hochschaukeln.
Wahrscheinlich ist es am besten, nach jedem größeren Schritt abzurunden. Aber das scheint auch fehlzuschlagen.
@Darii:
Ich importiere Numeric und arbeite mit einem Array von Floats. Aus der Sicht von Numeric ist die Behandlung von Longs und allgemeinen anderen Klassen anscheinend gleichermaßen langsam. Das Runden von Array-Einträgen scheint auch nicht direkt zu sein