Вот как вы это делаете, просто используя std :: lib (без QT).Определите свой собственный класс, производный от numpunct, который может указывать десятичную точку, символ группировки и даже интервал между группировками.Наполните поток ostring потоком, содержащим ваш аспект.Установите флаги на этом ostringstream по желанию.Выведите его и получите из него строку.
#include <locale>
#include <sstream>
#include <iostream>
class my_punct
: public std::numpunct<char>
{
protected:
virtual char do_decimal_point() const {return ',';}
virtual char do_thousands_sep() const {return '.';}
virtual std::string do_grouping() const {return std::string("\2\3");}
};
int main()
{
std::ostringstream os;
os.imbue(std::locale(os.getloc(), new my_punct));
os.precision(2);
fixed(os);
double x = 123456789.12;
os << x;
std::string s = os.str();
std::cout << s << '\n';
}
1.234.567.89,12