十进制格式是逗号而不是点

时间:2020-07-20 16:45:48

标签: c

我正在尝试使用gnuplot进行绘制,但我无法正确绘制值。当我使用printf("%.9f %.9f\n", x, y);打印值时,得到的结果是:499,000000000 -0,725536846。但我期待一个。代替 ,。我尝试使用setlocale(LC_NUMERIC, "POSIX");更改输出,但是不起作用。

有人可以告诉我如何解决此输出吗?

更新:我运行Local pt_BR.UTF-8时得到printf("Local %s\n", setlocale(LC_NUMERIC, ""));

这是一个小例子:

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


int main(int argc, char *argv[]){
    printf("Local %s\n", setlocale(LC_ALL, ""));
    printf("%.9f\n", 1.255165164684);
    return 0;
}

输出:

Local LC_CTYPE=pt_BR.UTF-8;LC_NUMERIC=pt_BR.UTF-8;LC_TIME=pt_BR.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=pt_BR.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=pt_BR.UTF-8;LC_NAME=pt_BR.UTF-8;LC_ADDRESS=pt_BR.UTF-8;LC_TELEPHONE=pt_BR.UTF-8;LC_MEASUREMENT=pt_BR.UTF-8;LC_IDENTIFICATION=pt_BR.UTF-8
1,255165165

0 个答案:

没有答案