integer in double rundung



  • Michael E. schrieb:

    Unbekannter schrieb:

    Wäre die Idee bescheuert zu sagen, ich lese die Daten in einen String, Füge nach 7 Stellen einen Punkt in den string ein und schiebe das über einen stringstream in die double Variable! Könnte das klappen????
    😕

    Nein.

    Könnte das klappen -> Nein oder
    Ist das bescheuert -> Nein

    PC mit XP Visual Studio.net 2003



  • CStoll schrieb:

    (von Ganzzahltypen will ich hier gar nicht anfangen).

    Schade, gerade den interessanten Teil lässt du weg. Ganzzahltypen haben nämlich den ungemeinen Vorteil, dass sie keine Exponenten speichern müssen. Somit kann man sich ganz leicht was basteln:

    typedef uint32 unsigned long;    // IIRC vom Standard garantiert
    
    class MyOwnNumerType
    {
    public:
        MyOwnNumberType(uint32 value_) : value(value_);
        { }
    
        std::string Print()
        {
            std::stringstream ss;
            ss << value;
            std::string svalue;
            ss >> svalue;
            svalue.insert(svalue.length() - 2, ".");
            return svalue;
        }
    
    private:
        uint32 value;
    };
    


  • Also auch mein string Lesen und Umwandeln, funktioniert nicht, im string stimmt noch alles aber wenn ichs dann über stringstream in die double Variable puste, wird wieder gerundet, so n....



  • Diesen Vorschlag hatte ich schon recht weit am Anfang gemacht - allerdings mit der Antwort "zu kompliziert und zu aufwändig".

    @Unbekannter: Die Bastelei mit dem Stringstream ist "bescheuert" und genauso exakt wie alle anderen bisherigen Versuche.



  • Unbekannter: Hmm, ich benutze denselben Compiler (wenn auch nicht dieselbe IDE). Bei mir funktionierts aber. Kannst du uns mal bitte die Ausgabe des folgenden Codes mitteilen?

    #include <iostream>
    using namespace std;
    
    int main()
    {
        long double foo;
        cout << sizeof(foo);
    }
    


  • CStoll schrieb:

    Diesen Vorschlag hatte ich schon recht weit am Anfang gemacht - allerdings mit der Antwort "zu kompliziert und zu aufwändig".

    @Unbekannter: Die Bastelei mit dem Stringstream ist "bescheuert" und genauso exakt wie alle anderen bisherigen Versuche.

    Jau, das hab ich grad auch gemerkt... 😃
    Öhm, also ich seh schon ich muß mir da mal was anderes überlegen, Danke für Eure Hilfe....



  • Michael E. schrieb:

    Unbekannter: Hmm, ich benutze denselben Compiler (wenn auch nicht dieselbe IDE). Bei mir funktionierts aber. Kannst du uns mal bitte die Ausgabe des folgenden Codes mitteilen?

    #include <iostream>
    using namespace std;
    
    int main()
    {
        long double foo;
        cout << sizeof(foo);
    }
    

    Ausgabe ist 8...



  • 😕 Und hiervon?

    #include <iostream>
    #include <iomanip>
    using namespace std;
    
    int main()
    {
        long long x = 3546478288726;
        long double x_neu = x/1000000.0; 
        cout << setprecision(13) << x_neu;
    }
    


  • Also da funktionierts, in meinem Projekt aber net....
    Moment, ich muß mal was schauen.... 😕



  • ich bin ziemlich sicher das er(Unbekannt) eine fehlermeldung bekommen wird...

    *mal sehen*



  • Lustiges Rätselraten hier.
    Etwas Code würde das ganze erheblich abkürzen.
    Kurt



  • immigrant schrieb:

    ich bin ziemlich sicher das er(Unbekannt) eine fehlermeldung bekommen wird...

    *mal sehen*

    Wir können ja wetten 🕶

    ZuK: Nicht mehr nötig, siehe Unbekannters Antwort vor dir.

    [Edit] Das Ganze wurd erst zum lustigen Rätselraten, weil er gemeint hat, mit long double würds nicht funktionieren.



  • Also ich weiß net mer weiter, in meinem Projekt klappts net
    Also ich hab jetzt folgendes:

    long long e,n;
    in>>e;
    in>>n;
    //Hier lese ich die 9-stellige Zahl aus der Datei ein, lass ich mir e und n ausgeben, stimmt alles....
    long double east = e/100.0;
    long double north = n/100.0;
    //so und nun lass ich mir north und east ausgeben und schwupps sind die Nachkommastellen wieder gerundet?????????????
    

    Das ist faszinierend!!! Kann es daran liegen, dass ich in diesem Projekt die MFC benutze, weiterhin benutze ich auch OpenGL Bibs.... 😕 😕



  • Schau mal im Debugger, ob east und north genaue Werte speichern. Falls ja, wovon ich ausgehe, schneidet dir die Ausgabe an den Daten rum. Das gehört dann allerdings ins MFC-Board.



  • Okay, ich habs.....
    Öhm, hüstel, hüstel, ich hatte auf dem Weg von long zu double ne float Variable im Spiel, die mir das ganze verhunzt hat! Tja manchmal sieht man halt den sprichwörtlichen Wald vor lauter Bäumen net!

    Ganz großer Sport von Euch allen Jungs und Mädels

    Grüße & Danke 👍


Anmelden zum Antworten