C++ mehr Genauigkeit ? [long double]

Dieses Thema im Forum "Webmaster Hilfe / Programmierer Forum" wurde erstellt von Oudessety, 02.10.2013.

  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. AdMan

    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:
    25.885
    Zustimmungen:
    91
    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:
    25.885
    Zustimmungen:
    91
    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. AdMan

    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. 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...
  2. Ü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...
  3. W-Lan Stick funktioniert nach Update nicht mehr

    W-Lan Stick funktioniert nach Update nicht mehr: Hallo! Ich hab jetzt nach langem Warten endlich das Update auf Win10 gemacht, weil ich durch die regelmäßige Meldung ja quasi genötigt wurde......
  4. Festplatte 2,5 wird nicht mehr erkannt

    Festplatte 2,5 wird nicht mehr erkannt: Welche Möglichkeiten habe ich, meine Festplatte 2,5 wird nicht mehr erkannt. Danke
  5. Devolo Verstärker funktioniert nicht mehr

    Devolo Verstärker funktioniert nicht mehr: In unserem Haus befindet sich 1 Modem, welches Wlan Signale aussendet. Dazu haben wir für 2 Zimmer jeweils mit einem Devolo Dlan500 Verstärker...