14 Stimmen

Wie drucke ich ein Doppel mit einem Komma?

In C++ habe ich eine Float/Double-Variable.

Wenn ich dies z. B. mit cout ausdrucke, wird die resultierende Zeichenfolge durch Punkte getrennt.

cout << 3.1415 << endl
$> 3.1415

Gibt es eine einfache Möglichkeit, das Doppel mit einem Komma zu drucken?

cout << 3.1415 << endl
$> 3,1415

0voto

Erich Kuester Punkte 400

Sehr alter Thread, aber trotzdem ... Ich hatte das Problem, einen Texteintrag unter Gtkmm-3.0 mit dem Ergebnis einer Entfernungsberechnung zu füllen. Zur Verdeutlichung füge ich ein Beispiel an, in dem ich einige Weisheiten aus verschiedenen Beiträgen, die ich in den letzten Tagen gelesen habe, zusammengefasst habe:

#include <locale>
// next not necessary, added only for clarity
#include <gtkmm-3.0/gtkmm.h>
Gtk::Entry m_Text;
// a distance measured in kilometers
double totalDistance = 35.45678;
std::stringstream str;
// I am using locale of Germany, pay attention to the _
str.imbue(std::locale("de_DE"));
// now we have decimal comma instead of point
str << std::fixed << std::setprecision(4) << std::setw(16) << totalDistance << " km";
// the wished formatting corresponds to "%16.4f km" in printf
m_Text.set_text(str.str());

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X