c++ - 设置千位分隔符格式

标签 c++ mfc

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

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

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

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

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

感谢您的帮助

最佳答案

据我所知,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

关于c++ - 设置千位分隔符格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40635929/

相关文章:

c++ - 禁用主菜单

c++ - 有没有标准的方法可以在没有 QCompleter 的情况下从 QLineEdit 创建下拉菜单?

c++ - 如何获取scoped_ptr的地址?

c++ - 初始化列表的简单示例

c++ - 使用 sleep() 时生产者消费者(使用 Monitor)代码不工作?

c++ - 如何使用 CMake 项目调试 QML

c++ - Windows MFC 对话框在无效时闪烁

c++ - WinAPI 窗口消息似乎被插件窃取 - 如何修复?

c++ - 如何使用xml lib在excel中设置列宽

c++ - 如何使用 MFC 获取单独窗口的句柄?