double mit 2 nachkommastellen



  • [Rewind] schrieb:

    Werner_logoff schrieb:

    Zeile 1:

    double value = 1.555;
    

    Wie meinst du das? Er will doch am Anfang ein String und nicht double haben.

    cout << fixed << setprecision(2) << "1.555";

    Erwartest du hier. dass "1.55" ausgegeben wird? Mit anderen Worten, erwartest du, dass fixed und setprecision die Ausgabe eines Strings beeinflussen?



  • 1. bezieht sich auf das verwendete ios_base-Objekt (cout). Ich dachte das ist klar.
    2. war nur eine Idee. Ich habe erst danach gesehen, wo der Fehler ist.

    3. Du meinst hier wohl setf?

    Ja.

    Um durch Werners Antwort auf die Lösung zu kommen, muss man zwischen den Zeilen, die zwischen den Zeilen stehen, lesen.



  • hallo zusammen,

    danke erstmal für eure antworten.

    double value1 = 1.555 zu double value2 = 1.55 mit precision(2)
    funktioniert.

    ja, ich habe erwartet, daß fixed und setprecision die ausgabe des strings
    beeinflussen. ich lag wohl falsch.
    (einige beispiele im internet haben mich das annehmen lassen.)

    ein string wie std::string value = "1.555" zu double funktioniert
    schon, allerdings hat precision(2), wie ich feststellen musste,
    keine auswirkung.

    ein double kriege ich leider nicht in die darstellung 1.00 mit precision(2)
    erzwungen. die nullen werden immer abgeschnitten. gibt es hierfür eine
    lösung?

    nochmals danke!
    gruss
    QuornJulio


  • Mod



  • hallo,

    danke für den link.

    ist mir bekannt:
    double value = 1.00;

    cout.precision(2);
    cout << fixed << value;
    

    allerdings will ich den wert gespeichert haben in einer variablen.
    also z.B.:
    double xy = 1 => in double value1 = 1.00
    double zy = 1.5 => in double value2 = 1.50

    gruss
    QuornJulio


  • Mod

    😕 doubles speichern den Wert einer Zahl, keine Zeichenketten.



  • hallo,

    ich will nicht ein double in einer zeichenkette speichern!
    ich will lediglich ein double mit 2 nachkommastellen.

    zum Beispiel:

    double xy = 1 => double value1 = 1.00
    double zy = 1.5 => double value2 = 1.50
    double za = 1.555 => double value3 = 1.55

    gruss
    QuornJulio



  • QuornJulio schrieb:

    double xy = 1 => double value1 = 1.00
    double zy = 1.5 => double value2 = 1.50
    double za = 1.555 => double value3 = 1.55

    double value1 = 1;
    	double value2 = 1.5;
    	double value3 = 1.555;
    	std::cout << std::fixed << std::setprecision(2) << value1 << "\n" << value2 << "\n" << value3;
    

    Wurde doch schon erwähnt oder täusche ich mich? 😶

    EDIT:
    Ausgabe:

    1.00
    1.50
    1.55
    


  • QuornJulio schrieb:

    ich den wert gespeichert haben in einer variablen.
    also z.B.:
    double xy = 1 => in double value1 = 1.00
    double zy = 1.5 => in double value2 = 1.50

    warum?



  • hallo,

    ich will den double NICHT! ausgeben auf std::cout, wie bereits oben erwähnt.
    ich will werte, siehe oben, in doubles variablen mit nachkommastellen speichern,
    auch wenn sie keine nachkommastellen haben.

    double value = 1;

    zu

    double _value = 1.00

    speichern und NICHT! auf std::cout ausgeben.

    gruss
    QuornJulio



  • QuornJulio schrieb:

    ich will den double NICHT! ausgeben auf std::cout, wie bereits oben erwähnt.
    ich will werte, siehe oben, in doubles variablen mit nachkommastellen speichern,
    auch wenn sie keine nachkommastellen haben.

    Nachkommastellen sind lediglich eine Information für den menschlichen Leser. Für den Computer ist die Anzahl der Nachkommastellen egal, also wiederhole ich meine Frage:

    daddy_felix schrieb:

    warum?


  • Mod

    QuornJulio schrieb:

    double value = 1;

    zu

    double _value = 1.00

    speichern

    SeppJ schrieb:

    doubles speichern den Wert einer Zahl, keine Zeichenketten.



  • hallo,

    ich möchte mich bei allen bedanken, die geantwortet haben.
    das problem hat sich erledigt.

    gruss
    QuornJulio



  • Ich hoffe, das hat sich erledigt, weil du verstanden hast, dass 1.000 und 1.0 für den Computer dieselbe Zahl ist und sie sich nur in ihrer Darstellung unterscheiden (wie man's eben auch von der Schule kennt).


Anmelden zum Antworten