[英]How To Format Number In C++?
我想用#。###。###类型的C ++格式化输出。 例:我有一个整数编号num = 123456789
现在,我想将其格式化为123.456.789
作为输出。 如何在C ++中做到这一点? 谢谢你的帮助
示例1:输入:
int a = 12345
预期产量:
a = 12.345
示例2:输入:
int a = 123456
预期产量:
a = 123.456
示例3:输入:
int a = 1234567
预期产量:
a = 1.234.567
通常,在打印出来之前,通过设置适当的区域设置来做到这一点。 在大多数情况下,“适当的”语言环境不是您(程序员)选择的语言环境,而是用户选择的语言环境。 为此,请使用不带名称的语言环境:
#include <iostream>
#include <vector>
int main() {
std::cout.imbue(std::locale(""));
std::vector<int> values { 123456789, 12345, 123456, 1234567 };
for (auto v : values)
std::cout << v << "\n";
}
在我的机器上(配置为英语/美国语言环境),这会产生如下输出:
123,456,789
12,345
123,456
1,234,567
如果您的计算机配置为使用的语言环境.
而不是,
作为一个千位分隔符,这是你应该得到的东西。 如果您需要确保无论用户的意愿如何都可以做到这一点(请三思而后行,但是...),则可以通过显式指定语言环境来实现。 例如,如果我使用: std::cout.imbue(std::locale("DE"));
,我得到的输出与您要求的一样:
123.456.789
12.345
123.456
1.234.567
请查阅编译器的文档,以获取有关可用语言环境以及用于它们的名称的信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.