回答
简短的回答:
int value = 1978879;
std::cout.imbue(std::locale(""));
std::cout << value << std::endl;
语言环境负责的格式。任何流都可以充满语言环境;默认情况下它们使用全局区域设置,默认情况下是不使用任何数千个分隔符的“C”区域设置。通过创建一个空字符串作为参数的区域设置实例,我们使用用户的区域设置,在您的情况下可能是瑞士的。
您也可以指定明确的区域设置名称,但根据您的平台(Linux/Windows)名称不同,并非所有系统都支持所有区域设置。
如果你想获得一个字符串,最简单的方法可能是使用一个字符串流(从<sstream>
头):
std::ostringstream stream;
stream.imbue(std::locale(""));
stream << value;
std::string stringValue = stream.str();
虽然你也可以直接使用的语言环境的方面,但是这更复杂。
您还可以设置全局区域设置,将所有流都可以使用(除非他们特别用不同的语言环境充满):
std::locale::global(std::local(""));
完美!感谢您的帮助 – pasta 2011-06-16 14:45:30
当您完成开发并准备发布时,您应该做的第一件事就是添加'std :: locale :: global(std :: local(“”));'因为第一个语句是main。然后再测试一次。 – 2011-06-16 16:38:01
设置区域设置后,可以使用'cout << put_money(value)'确保使用正确的货币格式。这确实假设“价值”是以货币的最小单位给出的,例如,美分或急剧,所以你可能要乘以100的价值。 – 2014-03-05 03:10:50
- 1. 未格式化货币格式货币
- 2. C#货币格式化(“C2”)
- 3. 格式化货币
- 4. 格式化货币
- 5. 格式化货币
- 6. 货币格式C++
- 7. C#货币格式
- 8. C#格式货币
- 9. C#格式十进制货币/货币
- 10. 将货币格式化为asp.net mvc c中的货币#
- 11. ICU自定义货币格式化(C++)
- 12. C#从数据库格式化货币
- 13. C++中的货币格式化
- 14. Kendo UI货币格式化
- 15. 格式化AED货币
- 16. 格式化货币输出
- 17. SQL货币格式化
- 18. ASP.net ListBox货币格式化
- 19. 货币格式化语言?
- 20. 货币格式化MVC
- 21. SQL to_char货币格式化
- 22. 货币格式化问题
- 23. Rails货币格式化
- 24. c中的货币格式#
- 25. 以特定格式格式化货币
- 26. 使用动态货币符号进行货币格式化
- 27. Java的货币格式化:强制使用的货币符号
- 28. 格式货币
- 29. 货币格式
- 30. 货币格式
您的意思是1,978,897? – tibur 2011-06-16 14:26:33
他所做的与使用德语格式规则的功能相同。 – Sven 2011-06-16 14:27:14
看看''标题和文档。 –
2011-06-16 14:27:26