设置千位分隔符格式

285*_*ser 2 c++ mfc

我正在 Visual Studio 2010 中使用 MFC 进行 C++ 编程。

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

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

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

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

谢谢您的帮助

Jer*_*fin 5

据我所知 CString.Format不支持这一点。

我会使用 astringstream来处理格式:

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

temp << 23400;

CString result = temp.str().c_str();
Run Code Online (Sandbox Code Playgroud)

正如我在此处所做的那样,指定一个空字符串作为区域设置的名称意味着它应该从操作系统中获取区域设置。您可以提供特定区域设置的名称(例如,如果您想要特定区域设置,无论操作系统如何配置):

temp.imbue(std::locale("de")); // German locale
Run Code Online (Sandbox Code Playgroud)