C / C ++:printf使用逗号代替点作为小数分隔符

时间:2013-02-07 14:30:31

标签: c decimal printf

我需要我的程序使用逗号作为小数分隔符显示输出。

根据这个链接:http://www.java2s.com/Code/Java/Development-Class/Floatingpointwithcommasf.htm你可以在Java中使用这样的东西:

System.out.printf("Floating-point with commas: %,f\n", 1234567.123);

我是否可以使用旗帜或其他东西在C中有类似的行为?

提前致谢!

2 个答案:

答案 0 :(得分:19)

如果需要,您可以在程序开头设置当前区域设置:

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


int main()
{
    setlocale(LC_NUMERIC, "French_Canada.1252"); // ".OCP" if you want to use system settings
    printf("%f\n", 3.14543);
    return 0;
}

答案 1 :(得分:3)

C中没有类似的功能。您可以使用sprintf打印到char数组,然后手动用逗号替换该点。对不起,我想不出更好的解决方案。

编辑:感谢Mats Patersson的评论: 看来设置语言环境可以改变这个角色。请查看他发布的链接。