C 格式化一个大数字

C 格式化一个大数字,c,numbers,format,C,Numbers,Format,可能重复: 如何在C中使用逗号格式化大整数,从而提高可读性 2222222应该是2222222,44444444应该是44444444。使用模数(%)操作并构建您自己的字符串。使用模数(%)操作并构建您自己的字符串。如果您在谷歌上搜索“c格式千位分隔符”,那么其中一个热门内容就是这个页面 虽然是C++,但是它应该给你一个你能做什么的想法。 < p>如果你的谷歌是“C格式的千分器”,那么这个页面的一个点击就是BR> 虽然是C++,但是它应该给你一个你能做什么的想法。 你不需要自己做格式化;Uni

可能重复:

如何在C中使用逗号格式化大整数,从而提高可读性

2222222应该是2222222,44444444应该是44444444。

使用模数(
%
)操作并构建您自己的字符串。

使用模数(
%
)操作并构建您自己的字符串。

如果您在谷歌上搜索“c格式千位分隔符”,那么其中一个热门内容就是这个页面
虽然是C++,但是它应该给你一个你能做什么的想法。

< p>如果你的谷歌是“C格式的千分器”,那么这个页面的一个点击就是BR>
虽然是C++,但是它应该给你一个你能做什么的想法。

你不需要自己做格式化;Unix中的code>printf有一个
修饰符:

printf("%'d\n", number);

看起来VisualStudio不支持这一点。但是,此语法支持区域设置。

您不需要自己进行格式化printf有一个
修饰符:

printf("%'d\n", number);

看起来VisualStudio不支持这一点。但是,此语法支持区域设置。

smartest?在这种情况下,这意味着什么?例如,法国人将使用空格作为千位分隔符,逗号作为十进制分隔符。一个点没有任何意义。我希望它从右端开始每隔1000次。最聪明的?在这种情况下,这意味着什么?例如,法国人将使用空格作为千位分隔符,逗号作为十进制分隔符。一个点没有任何意义。我希望它从右端开始每隔1000次。谢谢,我只寻找Linux,我在那里试过了,但没有成功。我还发现:对于一些数字转换,使用基数字符(
decimal point')或千分组字符。实际使用的字符取决于区域设置的LC_数字部分。POSIX区域设置使用
”作为基数字符,并且没有分组字符。因此,printf(“%'.2f”,1234567.89);-结果POSIX语言环境中出现
1234567.89',nl_nl语言环境中出现
1234567,89',da_DK语言环境中出现'1.234.567,89'。但是我怎么才能知道我的语言环境是什么呢?什么是区域设置?@hari:您的区域设置是什么(通常是
LANG
环境变量)?它是否设置为除
C
之外的其他值?杰里米:我什么都没看到。LANG未设置。@hari:在您的环境中查找变量
LANG
LC\u NUMERIC
,并查看它们设置为什么。尝试将它们设置为您刚刚粘贴的示例之一(我的示例是
en_US.UTF-8
)。@hari:如果您的区域设置未设置,则您将获得您在注释中提到的POSIX区域设置,该区域设置没有数千个分隔符。尝试其他值之一,看看这是否会改变行为。谢谢,我只寻找Linux,我在那里尝试了,但没有成功。我还发现:对于一些数字转换,使用基数字符(
decimal point')或千分组字符。实际使用的字符取决于区域设置的LC_数字部分。POSIX区域设置使用
”作为基数字符,并且没有分组字符。因此,printf(“%'.2f”,1234567.89);-结果POSIX语言环境中出现
1234567.89',nl_nl语言环境中出现
1234567,89',da_DK语言环境中出现'1.234.567,89'。但是我怎么才能知道我的语言环境是什么呢?什么是区域设置?@hari:您的区域设置是什么(通常是
LANG
环境变量)?它是否设置为除
C
之外的其他值?杰里米:我什么都没看到。LANG未设置。@hari:在您的环境中查找变量
LANG
LC\u NUMERIC
,并查看它们设置为什么。尝试将它们设置为您刚刚粘贴的示例之一(我的示例是
en_US.UTF-8
)。@hari:如果您的区域设置未设置,则您将获得您在注释中提到的POSIX区域设置,该区域设置没有数千个分隔符。尝试其他值之一,看看这是否会改变行为。