Ich versuche, ein Programm in Python 2.7 zu schreiben, die zuerst sehen, ob eine Zahl die andere gleichmäßig teilt, und wenn es das Ergebnis der Division erhält.Ich mache Fehler bei der Division von großen Zahlen
Allerdings bekomme ich einige interessante Ergebnisse, wenn ich große Zahlen verwende.
Derzeit verwende ich:
from __future__ import division
import math
a=82348972389472433334783
b=2
if a/b==math.trunc(a/b):
answer=a/b
print 'True' #to quickly see if the if loop was invoked
Als ich das laufen erhalte ich:
True
Aber 82348972389472433334783 eindeutig nicht gerade ist.
Jede Hilfe wäre willkommen.
Willst du nicht den Modul von "a" geteilt durch 2 prüfen? Ich würde empfehlen, das 'if' zu' if a% 2: 'zu ändern. Dies wird Ihnen "0" geben, wenn "a" gerade ist, "1", wenn "a" ungerade ist. Denn was ich glaube, dass du effektiv tust, ist zu vergleichen, ob 'a/b 'gleich' a/b 'ist (du dividierst ganze Zahlen, also hat' trunc' keinen Effekt, richtig?) – BorrajaX
Ergebnis der Division ist ein Fließkomma Nummer. Sie fragt einfach "[ist Fließkomma-Mathe gebrochen?] (Http://stackoverflow.com/questions/588004/is-floating-point-math-broken)" –
@ user2357112 Das Ergebnis der Division * ist * ein float, weil "von __future__ Einfuhrdivision". – jme