格式千位分隔符

时间:2016-11-16 15:27:59

标签: c++ mfc

我在visual studio 2010中使用mfc在c ++中编程。

我住在欧洲,所以我的PC区域设置不是美国而是欧洲。

我使用CString的.Format函数打印计算结果,我想在小数和千位之间添加小数点作为分隔符。

例如,我想显示23.400而不是23400

是否可以使用%的特定格式,或者我必须更改电脑的设置?

感谢您的帮助

2 个答案:

答案 0 :(得分:4)

据我所知,CString的.Format不支持此功能。

我使用stringstream来处理格式化:

std::ostringstream temp;
temp.imbue(std::locale(""));

temp << 23400;

CString result = temp.str().c_str();

指定一个空字符串作为我在这里完成的语言环境的名称意味着它应该从操作系统中选择语言环境设置。您可以改为指定特定区域设置的名称(例如,如果您需要特定的区域设置,无论操作系统的配置如何):

temp.imbue(std::locale("de")); // German locale

答案 1 :(得分:0)

据我所知,这是你正在寻找的东西。谷歌上的简单搜索给出了答案。顺便提一下,这种类型的印刷品(%.2f)在几乎所有现代语言中都非常标准。

"Floating point: %.2f\n"

https://msdn.microsoft.com/en-us/library/aa314327(v=vs.60).aspx