Wie kann ich die Druckgenauigkeit mit der stl ändern?

Lesezeit: 1 Minute

Wie kann ich die Druckgenauigkeit mit der stl andern
mmr

Ich möchte Zahlen in eine Datei drucken, indem ich die stl mit der Anzahl der Dezimalstellen anstelle der Gesamtgenauigkeit verwende.

Also, wenn ich das mache:

int precision = 16;
std::vector<double> thePoint(3);
thePoint[0] = 86.3671436;
thePoint[1] = -334.8866574;
thePoint[2] = 24.2814;
ofstream file1(tempFileName, ios::trunc);
file1 << std::setprecision(precision)
    << thePoint[0]  << "\"
    << thePoint[1]  << "\"
    << thePoint[2] << "\";

Ich bekomme Zahlen wie diese:

86.36714359999999-334.886657424.28140258789063

Was ich will ist folgendes:

86.37-334.8924.28

Mit anderen Worten, an zwei Dezimalstellen abschneiden. Wenn ich die Genauigkeit auf 4 stelle, erhalte ich

86.37-334.924.28

dh die zweite Zahl wird falsch abgeschnitten.

Ich möchte nicht jede Zahl explizit manipulieren müssen, um die Kürzung zu erhalten, vor allem, weil ich scheinbar gelegentlich eine 9 wiederholt oder 0000000001 oder ähnliches zurückbleibt.

Ich bin sicher, es gibt etwas Offensichtliches, wie die Verwendung von printf(%.2f) oder etwas Ähnliches, aber ich bin mir nicht sicher, wie ich das mit stl << und ofstream mischen soll.

Verwenden Sie std::fixed , dies sollte für Sie funktionieren.

 file1 << std::fixed << std::setprecision(precision)
     << thePoint[0]  << "\"
     << thePoint[1]  << "\"
     << thePoint[2] << "\";

Wie kann ich die Druckgenauigkeit mit der stl andern
Jon Reid

Versuchen

file1 << std::setiosflags(ios::fixed) << std::setprecision(precision)

was das Festkommaformat anstelle des Gleitkommaformats festlegt.

(Das ist übrigens nicht STL. Es ist iostream.)

…Oh! Ich glaube, Kumar hat mich verbessert mit std::fixed.

  • Nur weil etwas Vorlagen verwendet, ist es nicht STL. Folgen Sie den Links und Sie werden feststellen, dass sie sich grundlegend unterscheiden.

    – Jon Reid

    18. März ’10 um 5:07


.

309600cookie-checkWie kann ich die Druckgenauigkeit mit der stl ändern?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy