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.066
    Zustimmungen:
    109
    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.066
    Zustimmungen:
    109
    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. Laptop startet nicht mehr

    Laptop startet nicht mehr: Hallo, Ich habe seit geraumer Zeit Probleme mit meinem Laptop und zwar ist es ein Dell Inspiron 15r 5520. Seit einiger Zeit arbeitet mein Laptop...
  2. Kein Bild mehr trotz Grafikkarten Austausch

    Kein Bild mehr trotz Grafikkarten Austausch: Hi Mein PC liefert seit einigen Tagen kein Bild mehr. Der der VGA-Anschluss war zuvor ein wenig wackelig. Ich habe den Stecker des Monitors öfters...
  3. roter Balken bei Laufwerk c weg

    roter Balken bei Laufwerk c weg: Hallo, mein Problem ist, Laufwerk c zeigt plötzlich keinen roten Balken mehr an. (Speicher voll) Das Laufwerk an sich wird angezeigt.. Wie bekomme...
  4. Windows bootet nicht mehr

    Windows bootet nicht mehr: Hallo zusammen, Mein Laptop bootet seit gestern ganz plötzlich nicht mehr. Hatte ihn vorgestern ganz normal runtergefahren seit gestern morgen...
  5. Über USB IDE+SATA Konverter werden keine Datenträger mehr angezeigt

    Über USB IDE+SATA Konverter werden keine Datenträger mehr angezeigt: Ich habe einen Renkforce USB 2.0 zu IDE+SATA Konverter mit USB-Anschluss von Conrad. Aber seit kurzem werden keine angeschlossenen Datentrgäger...