Я хочу использовать библиотеку fmt для форматирования чисел с плавающей запятой.
Я пытаюсь отформатировать число с плавающей запятой с десятичным разделителем ',' и безуспешно попытался:
#include <iostream>
#include <fmt/format.h>
#include <fmt/locale.h>
struct numpunct : std::numpunct<char> {
protected:
char do_decimal_point() const override
{
return ',';
}
};
int main(void) {
std::locale loc;
std::locale l(loc, new numpunct());
std::cout << fmt::format(l, "{0:f}", 1.234567);
}
Вывод 1.234567
.Я хотел бы 1,234567
Обновление:
Я просмотрел источник библиотеки fmt и думаю, что десятичный разделитель жестко запрограммирован для чисел с плавающей запятой и несоблюдайте текущую локаль.
Я только что открыл проблему в библиотеке fmt