c - 如何在 C 中使用逗号作为千位分隔符来格式化数字?

在 C 中,我如何格式化一个大数字,例如11234567891,123,456,789?

我尝试使用 printf("%'10d\n", 1123456789),但这不起作用。

你有什么建议吗?解决方案越简单越好。

最佳答案

如果您的 printf 支持 ' 标志(根据 POSIX 2008 printf() 的要求),您可以通过适本地设置您的语言环境来做到这一点。示例:

#include <stdio.h>
#include <locale.h>

int main(void)
{
    setlocale(LC_NUMERIC, "");
    printf("%'d\n", 1123456789);
    return 0;
}

然后构建并运行:

$ ./example 
1,123,456,789

在 Mac OS X 和 Linux (Ubuntu 10.10) 上测试。

https://stackoverflow.com/questions/1449805/

相关文章:

c# - 如何使 Visual Studio 不将 { 放在新行上?

objective-c - 将秒整数转换为 HH :MM, iPhone

visual-studio - 如何在 Visual Studio (Express) 2008 中

c++ - 我应该在我的 C++ 代码中使用 printf 吗?

c# - 文件大小格式提供程序

xml - 在 Eclipse 中格式化 XML 代码

objective-c - 将字符串转换为 NSDate

c++ - 如何使用 ostream 在 c++ 中将 unsigned char 打印为十六进制?

intellij-idea - 如何在 WebStorm 中自动格式化代码?

.net - .NET 中是否有一种简单的方法来获取数字的 "st"、 "nd"、 "rd"和 "t