C++ mehr Genauigkeit ? [long double]

Diskutiere C++ mehr Genauigkeit ? [long double] im Webmaster Hilfe / Programmierer Forum Forum im Bereich Computerprobleme; Ich bin gerade schon am verzweifeln. Ich habe schon ewig bei Google & Co. gesucht. Also ich habe ein Wurzelzieh/Nährungsprogramm geschrieben, und...

  1. #1 Oudessety, 02.10.2013
    Oudessety

    Oudessety AMD -> XFX

    Dabei seit:
    02.08.2012
    Beiträge:
    117
    Zustimmungen:
    0
    Ort:
    Deutschland
    Ich bin gerade schon am verzweifeln. Ich habe schon ewig bei Google & Co. gesucht. Also ich habe ein Wurzelzieh/Nährungsprogramm geschrieben, und würde jetzt gerne, mehr Genauigkeit haben, er soll also mehr Nachkommastellen berechen. Ich hätte gerne 100 bis 1000 Nachkommastellen; Bei mir zeigt er jetzt 100 Nachkommastellen an, aber ungenau.

    Hier der Quellcode/main.cpp

    Code:
    #include <iostream>
    //#include <fstream>
    //#include <string>
    //#include <iomanip>
    //#include <cmath>
    
    using namespace std;
    
    int main()
    {
    
    
    	cout.precision(1000);
    
    
    	long double Zahl;
    
    	cout << "Aus welcher Zahl moechtest du die Wurzel errechnet haben ?" << endl;
    	cin >> Zahl;
    	if (Zahl != 0){
    		Zahl = sqrt(Zahl);
    		cout << "Die Wurzel betraegt: " << Zahl << endl;
    	}
    	else{
    		cout << "Keine 0 !" << endl;
    	}
    	cin.get();
    	cin.ignore();
    
    	return 0;
    }
     
  2. Anzeige

    schau mal hier: Windows-Wartungs-Tool. Viele Probleme lassen sich damit einfach beheben. Oftmals ist der PC dann auch schneller!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  3. Lotus

    Lotus Erfahrener Benutzer

    Dabei seit:
    17.02.2007
    Beiträge:
    2.428
    Zustimmungen:
    0
  4. #3 Oudessety, 02.10.2013
    Oudessety

    Oudessety AMD -> XFX

    Dabei seit:
    02.08.2012
    Beiträge:
    117
    Zustimmungen:
    0
    Ort:
    Deutschland
    Wie zum Beispiel cmath ?
     
  5. #4 xandros, 02.10.2013
    xandros

    xandros IT Consultant, Cisco Registered Partner
    Moderator

    Dabei seit:
    05.07.2007
    Beiträge:
    26.162
    Zustimmungen:
    116
    Ort:
    Umkreis Duisburg, neben Mannheim, hinter Hamburg
    Wenn du damit bei den "Standardbibliotheken" nicht bereits die Grenzen von 64bit sprengst..... (64bit = 19 Dezimalstellen ohne Vorzeichen.)
    wie zum Beispiel MPIR oder Boost.Multiprecision (Chapter 1. Boost.Multiprecision - 1.54.0)
     
  6. #5 Oudessety, 02.10.2013
    Oudessety

    Oudessety AMD -> XFX

    Dabei seit:
    02.08.2012
    Beiträge:
    117
    Zustimmungen:
    0
    Ort:
    Deutschland
    Giebstt nicht auch die möglichkeit in C++ sozusagen die nachkommastellen nach und nach zu berechnen und die dann in jeweils eine Variable zu speichern ?
     
  7. #6 xandros, 02.10.2013
    xandros

    xandros IT Consultant, Cisco Registered Partner
    Moderator

    Dabei seit:
    05.07.2007
    Beiträge:
    26.162
    Zustimmungen:
    116
    Ort:
    Umkreis Duisburg, neben Mannheim, hinter Hamburg
    Ich weiss nicht genau wie das ueber Zusaetze wie Boost.Multiprecision genau geloest wird, aber vermutlich wird das darin bereits in passende Berechnungshappen zerlegt.

    Wenn du das manuell mit den Standardfunktionen nachbilden willst, wirst du Stueck fuer Stueck Annaeherungswerte berechnen muessen, wodurch das Endergebnis unter Umstaenden nicht genau wird.

    Ich bin (zum Glueck!) noch nie in die Verlegenheit geraten, derart viele Nachkommastellen berechnen zu muessen.....
     
  8. #7 Oudessety, 03.10.2013
    Oudessety

    Oudessety AMD -> XFX

    Dabei seit:
    02.08.2012
    Beiträge:
    117
    Zustimmungen:
    0
    Ort:
    Deutschland
    Hättest du eine Idee wie ich die Wurzel in jeweils eine Variable zerlege ?
     
  9. #8 FoX, 17.10.2013
    Zuletzt bearbeitet: 17.10.2013
    FoX

    FoX Erfahrener Benutzer

    Dabei seit:
    15.03.2008
    Beiträge:
    383
    Zustimmungen:
    0
    Ort:
    Köln
    Das Problem ist wirklich das mit den 64bit. Du musst zum einen nen variablentyp nehmen der möglichst viele Ziffern fassen kann, und dann steht du immernoch vor dem Problem, dass die Maschine beim letzten zyklus mit einer variable rundet. (zumindest bei den meisten rechenfunktionen)

    Du musst also zum einen erstmal verhindern, dass du eine funktion verwendest, nach der die Maschine rundet. Und dann musst du noch in Stücken rechnen oder keine Nachkommastelle verlieren. Ich hab das auch mal versucht mit der annäherung an pi. Habs aber aus zeitgründen gelassen.

    Beschäftige dich mal mit den Bibliotheken und dann schau dir mal "vedische Mathematik" an. Vielleicht kannst du dann was coden, das so rechnet oder vielleicht gibts da schon bibliotheken zu.

    Hier vielleicht einfacher erklärt als der Wiki Artikel
    YOUTUBE! <- ein "Das Erste" Podcast! Qualität, kein Trash!
     
  10. Anzeige

    Es ist generell erstmal empfehlenswert alle ggf. veralteten oder fehlerhaften Treiber zu scannen und auf neue zu aktualisieren. Hier kannst du einen Treiber-Scanner downloaden. Das erspart oftmals viel Ärger und hilft gegen diverse Probleme.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  11. #9 Oudessety, 17.10.2013
    Oudessety

    Oudessety AMD -> XFX

    Dabei seit:
    02.08.2012
    Beiträge:
    117
    Zustimmungen:
    0
    Ort:
    Deutschland
    Ok werd ich machen^^ Danke :p
     
  12. fabste

    fabste Erfahrener Benutzer

    Dabei seit:
    02.02.2010
    Beiträge:
    583
    Zustimmungen:
    0
    hmm wie wärs mit 'long double' (höchster Wert liegt glaub bei ... *taschenrechner raushohl* ;)...1,1E+4932) gibts glaub auch noch als unsigned...
     
Thema:

C++ mehr Genauigkeit ? [long double]

Die Seite wird geladen...

C++ mehr Genauigkeit ? [long double] - Ähnliche Themen

  1. PC startet nach OC nicht mehr. Hardware defekt?

    PC startet nach OC nicht mehr. Hardware defekt?: Hallo liebes Forum, Kurze Vorgeschichte: Ich habe meinen i5 3570k mit 105.99mhz Baseclock und einem erhöhten multiplier overclockt, da ich mehr...
  2. Computer erkennt Arbeitsspeicher nicht mehr

    Computer erkennt Arbeitsspeicher nicht mehr: Hallooooo liebes Forum, ich muss zugeben, dass ich dieses Forum nur gefunden habe, weil ich gerade verzweifel! Zu mir: Ich habe nicht sonderlich...
  3. kein Zugang mehr zum Windows-Konto

    kein Zugang mehr zum Windows-Konto: Hallo Leute, ich habe ein Mega-Problem und keine Ahnung wie ich es lösen soll. Ich kann mich seit gestern nicht mehr auf meinem Laptop (Windows...
  4. Windows startet nach CPU wechsel nicht mehr

    Windows startet nach CPU wechsel nicht mehr: Ich habe mir einen neuen Prozessor gekauft (i7 4690k) habe diesen mit einem neuen Kühler eingebaut und den PC danach ganz normal gestartet. Es kam...
  5. PC startet nicht mehr richtig - CsrBtOBEX-Dienst Problem

    PC startet nicht mehr richtig - CsrBtOBEX-Dienst Problem: hallo, seit einigen tagen habe ich das problem dass mein PC etwa nach jedem 3. mal runterfahren ewig runter fährt (1-2 Min, normal 10-20 sek.) ....