我想用C ++创建一个字符串,格式如下:
string + numbersWithFormatAndThousandSeparator + string
我不确定std::string
或snprintf()
是否提供这样的格式,尤其是千位分隔符。有人可以帮我这个吗?
答案 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文档。