我想使用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 库的源代码,并认为小数点分隔符是针对浮点数进行硬编码的,并且不尊重当前的语言环境。