gpt4 book ai didi

c++ - 如何用逗号打印 double

转载 作者:可可西里 更新时间:2023-11-01 16:30:02 35 4
gpt4 key购买 nike

在 C++ 中,我有一个 float/double 变量。

当我使用例如 cout 打印时,结果字符串是句点分隔的。

cout << 3.1415 << endl
$> 3.1415

有没有一种简单的方法可以强制用逗号打印 double ?

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

最佳答案

imbue() cout 具有 locale,其 numpunct facet 的 decimal_point() 成员函数返回一个逗号。

可以通过多种方式获得这样的locale。您可以使用系统上可用的命名语言环境(std::locale("fr"),也许)。或者,您可以派生自己的 numpuct,在其中实现 do_decimal_point() 成员。

第二种方法的例子:

template<typename CharT>
class DecimalSeparator : public std::numpunct<CharT>
{
public:
DecimalSeparator(CharT Separator)
: m_Separator(Separator)
{}

protected:
CharT do_decimal_point()const
{
return m_Separator;
}

private:
CharT m_Separator;
};

用作:

std::cout.imbue(std::locale(std::cout.getloc(), new DecimalSeparator<char>(',')));

关于c++ - 如何用逗号打印 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1422151/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com