如何在C++中格式化数字
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
有关可用区域设置以及要用于它们的名称的信息,请参阅编译器的文档。
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 检查输入是否不是整数或数字
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- 如何用数字处理log(0)
- 最高有效数字侧的第N位
- 使用 std::locale 格式化法语数字时无效的 UTF-8 数据
- 如何在C++中格式化数字
- 在小数秒内仅用 3 位数字格式化 posix 时间
- 将数字转换为格式化字符串,然后再次分析格式化字符串
- 在没有科学记数法的c++中格式化有效数字
- 格式化带符号十六进制数字的输出
- 如何使用stringstream格式化十六进制数字
- 一个数字和字段宽度的格式化输出,C++标准在哪里说明它
- Stringstream将unsigned long转换为带逗号的格式化数字字符串
- 在c++中很好地格式化数字
- 需要帮助格式化数字c++
- C++格式化int数字,用一个点分隔数千
- 防止像这样格式化大数字"24.000.000"
- 格式化的天气.TextCtrl只有数字值-浮点精度