Hallo Fragewurm,
durch eine Multiplikation zweier betraglich sehr großen Zahl
bin ich über den Wertebereich hinausgegangen.
Was nun?
Wie kann ich solche große Zahlen speichern und verarbeiten?
Manchmal reicht es die Rechenschritte umzustellen:
(a*b)/c
kann bei (a*b) einen Überlauf erzeugen, was durch
a*(b/c)
verhindert werden kann (Allerdings kann dann ein Unterlauf erzeugt werden).
Des weiteren kann folgendes Programm nochmals etwas andere Resultate liefern:
z = a*b
z/c
Der Grund ist, dass viele FPUs intern z.B. mit 80 Bit rechnen können, aber Variablen nur mit 64 Bit abgespeichert werden.
Wen man weiss was man macht, bzw. was Compiler und CPU machen, kann man manche Probleme umgehen.
Im Gegensatz zur Mathematik, kann ein Prozessor nur innerhalb eines begrenzten Wertebereichs rechnen.
Oft vergisst man dabei, dass auch die temporären Resultate innerhalb dieses Bereichs liegen müssen.
MfG Peter(TOO)