C ++中的千位分隔符

时间:2010-11-12 09:35:53

标签: c++

我想用C ++创建一个字符串,格式如下:

string + numbersWithFormatAndThousandSeparator + string

我不确定std::stringsnprintf()是否提供这样的格式,尤其是千位分隔符。有人可以帮我这个吗?

5 个答案:

答案 0 :(得分:5)

快捷方式:

std::ostringstream ss;
ss.imbue(std::locale("en_US.UTF-8"));
ss << 1033224.23;
return ss.str();

会返回字符串“1,033,244.23”

但它需要在您的系统上配置en_US.UTF-8区域设置。

答案 1 :(得分:3)

答案 2 :(得分:2)

BOOST改进了C ++语言环境支持(以及使用逗号数千个分隔符显示数字用法的明确示例):请参阅http://cppcms.sourceforge.net/boost_locale/html/tutorial.html

答案 3 :(得分:1)

有很多方法可以在C ++中正确格式化数字。查看这篇文章中的一些(boost::lexical_cast是我个人最喜欢的):http://www.cplusplus.com/articles/numb_to_text/

答案 4 :(得分:0)

<clocale>标题中提供了用于格式化数值的信息(包括数千个分隔符)。该标头提供了一个lconv结构,其中包含您需要的信息。特别是,该结构具有char *thousands_sep成员,可能正是您所需要的。

有关所有详细信息,请参阅struct lconv文档。

相关问题