首页 > 解决方案 > 十进制格式是逗号而不是点

问题描述

我正在尝试使用 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

标签: c

解决方案


推荐阅读