Maximalwert von double reicht nicht aus?

multimolti

Erfahrenes Mitglied
Hallo!

Wir sind hier gerade dabei, ein Programm zu schreiben, welches die Primfaktorzerlegung ausführt. Geht alles wunderbar, aber als wir dabei waren, die Zeit zu messen, ist uns aufgefallen, dass ab 20 Stellen nichts mehr geht. Vorher hat sich die Zeit ziemlich genau pro neuer Stelle verdreifacht, aber von 19 Stellen (20 Sek) auf 20 Stellen (Taschenrechner sagt 61 Sek) dauerte es auf ein mal furchtbar lange, nach 30 Min war er immer noch nicht fertig. Wir haben mal 2^64 gerechnet, da double ja 64 Bit hat, und siehe da, wir bekamen 1.8*10^19.
Also ist wohl bei 19 Stellen Schluss, aber was könnte man tun, um noch mehr Stellen hinzubekommen?
 
hallo,

dein Problem denke ich kannst du mit einem decimal beheben. Der hat soviel ich weiß 28 Nachkommastellen.

mfg
wensi
 
Notfalls kannst du dir einen eigenen Typen schreiben. Idee: Nimm eine Klasse mit 2 long Eigenschaften. Eine für die Vorkommastellen und eine für Danach. Dann implementierst du noch die unterschiedlichen Operatoren damit du auch damit rechnen kannst. Dein Programmhandling musst du dann eben darauf anpassen.
 

Neue Beiträge

Zurück