Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Phil239

Frischling

  • »Phil239« ist der Autor dieses Themas

Beiträge: 79

Beruf: Student

  • Private Nachricht senden

1

12.08.2009, 15:09

Radizieren

Hallo!

Ich habe mir gedacht, mal ein Programm zu erstellen, mit dem man die Wurzel einer Zahl mit beliebig vielen Nachkommastellen ausgeben kann. Natürlich gibts ja da die Funktion sqrt(), aber wegen dem Datentyp (z.B. double oder float) kann man ja nur eine begrenzte Anzahl von Nachkommastellen ausgeben. Ich habe auch schon einmal im Internet gesucht und habe irgendwo gefunden, dass man die Zahlen in einen String umwandeln soll; und das ist mein Problem. Vielleicht könnt ihr mir ja helfen.

Schonmal Danke im Voraus.

Phil239
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

2

12.08.2009, 15:15

Als Denkanstoß zum Rechnen mit großen Zahlen kannst du dir die Contest-Codes von Mega Sumem ansehen. Zum berechnen der Quadratwurzel gibts ja diverse approximations Verfahren: http://en.wikipedia.org/wiki/Methods_of_computing_square_roots

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

3

12.08.2009, 15:15

Du willst wissen wie man einen double in einen string umwandelt?

C-/C++-Quelltext

1
2
3
stringstream ss; 
ss << somedouble;
std::string somedoublestring = ss.str();
Für alles andere würde ich nach etwas wie "Arbitary Number Library C++" Googlen.

Phil239

Frischling

  • »Phil239« ist der Autor dieses Themas

Beiträge: 79

Beruf: Student

  • Private Nachricht senden

4

12.08.2009, 15:21

ich werds mal ausprobieren
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

Phil239

Frischling

  • »Phil239« ist der Autor dieses Themas

Beiträge: 79

Beruf: Student

  • Private Nachricht senden

5

12.08.2009, 16:41

1 Frage hätte ich noch: wie kriege ich es hin, mit größeren Zahlen als 2147483647 zu hantieren?
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

6

12.08.2009, 16:51

Du meinst welcher Datentyp diese Zahlen speichern kann? Erstmal würde dir dabei ein 64 Bit OS helfen ;)

Ich hab keine Ahnung für welchen Datentyp diese Zahl jetzt nochmal die Obergrenze ist, aber schau dir mal qualifizierer wie "unsigned" und "long" an. Ansonsten sollten double und float noch wesentlich größere Bereiche bieten, sind dafür dann aber auch nicht immer genau.

Aber da ich ahne worauf das hier hinausläuft: Schau dich wirklich nochmal nach "Arbitary Number Library C++" um. Es gibt mehrere davon, die dir (in der Regel auf Basis von strings) Klassen für theoretisch unbegrenzt große Datentypen bieten.

Phil239

Frischling

  • »Phil239« ist der Autor dieses Themas

Beiträge: 79

Beruf: Student

  • Private Nachricht senden

7

12.08.2009, 17:38

Vielen DANK!!! :D
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

9

12.08.2009, 19:12

Zitat von »"Das Gurke"«

Es gibt mehrere davon, die dir (in der Regel auf Basis von strings) Klassen für theoretisch unbegrenzt große Datentypen bieten.
Das kann ich mir nicht so richtig vorstellen. Bei Zahlenklassen sollte Performance und Speicherverbrauch eigentlich im Mittelpunkt stehen, und beides ist Strings nicht gerade in die Wiege gelegt.

BCD ist zum Beispiel auch eine Möglichkeit. Es gibt bestimmt massenhaft Bibliotheken für grosse Zahlen, wenn man etwas sucht (sowohl ganze als auch Dezimalzahlen).

Werbeanzeige