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());