Map-Wert mit zwei Nachkommastellen
-
Hallo zusammen. Ich habe ein kleines Darstellungsproblem. Habe vor, einen float- bzw. double-Wert in einer Map als Wert zu speichern. Wenn ich die Werte samt Schlüssel ausgeben möchte, bekomme ich die Fließkommawerte mit max. einer Nachkommastelle angezeigt.
Der Codeabschnitt zur Ausgabe sieht folgendermaßen aus:
cout.setf(ios_base::fmtflags(0), ios_base::floatfield); for(iter = myMap.begin(); iter != myMap.end(); iter++) cout << iter->first << ": " << iter->second << endl;Kann eigentlich nur an der Map selbst liegen - denn wenn ich das Format garnicht (also auf Standard) oder so wie oben definiere, bekomme ich die gewünschte Ausgabe, wenn ich statt dem Map-Wert eine einfache double- oder float-Variable angebe.
Kann mir vielleicht einer sagen, was ich da falsch mache?
Danke für's Reinschauen.
Gruss
_Bongo
-
Ich durchblick, da du weder map, noch Iteratortyp zeigst, nicht was für Typen du als Schlüssel und Wert benutzt!
-
Ein aus der Luft gegriffenes Beispiel:
#include <map> #include <string> using namespace std; void main() { map<string, double> myMap; map<string, double>::const_Iterator iter; myMap["Apfel"] = 1.2; myMap["Birnen"] = 2.45; cout.setf(ios_base::fmtflags(0), ios_base::floatfield); for(iter = myMap.begin(); iter != myMap.end(); iter++) cout << iter->first() << ": " << iter->second() << endl; }Meine Ausgabe sieht dann so aus: Apfel: 1
Birnen: 2.5soll aber so aussehen: Apfel: 1.20
Birnen: 2.45(auch wenn der Kilopreis nicht stimmt
)
-
-
_Bongo schrieb:
Meine Ausgabe sieht dann so aus: Apfel: 1
Birnen: 2.5soll aber so aussehen: Apfel: 1.20
Birnen: 2.45Bei mir sieht sie so aus, wie sie aussehen soll - nachdem ich die offensichtlichen Fehler im Code korrigiert hatte.
Wahrscheinlich hast du den echten Fehler nicht in dein Beispiel übernommen.