String nach Double umwandeln ohne Runden



  • gibt es für strings ähnliches wie für float, int und double sowas hier std::cout << setprecision(14)???

    problem in kleinem beispiel:

    double Id = 17530457180; 
    
    //Id in string KartenId umwandeln
    ostringstream outStream;
    outStream << Id;
    KartenId = outStream.str();
    
    Ausgabe:
    
    KartenId: 17530500000 <--- viel zu ungenau  :-1:
    

    mfg speedy



  • Auch double-Werte haben nur eine begrenzte Genauigkeit von (afaik) 6 bis 8 signifikanten Stellen. Alles was darüber hinausgeht, kannst du nicht mehr exakt in einer double-Variablen unterbringen, da benötigst du schon Spezialbibliotheken für übergroße Zahlen (z.B. GMP) oder du verarbeitest die IDs als Strings.



  • double hat 15-16 signifikante Stellen, sollte hier also reichen. single hat nur 7-8.

    double Id = 17530457180;
    
    //Id in string KartenId umwandeln
    ostringstream outStream;
    [b]outStream.precision(15);[/b]
    outStream << Id;
    string KartenId = outStream.str();
    


  • Perfekt! Danke

    MfG speedy


Anmelden zum Antworten