在cout等printf上的自动位置数约为double

时间:2014-10-11 06:22:59

标签: c printf double

在C ++中,使用cout可以轻松打印双重类型。 时

double pi = 3.14;
cout << pi;

打印

3.14

但是,在C中,使用printf

double pi = 3.14;
printf("%f", pi);

打印

3.14000000.. // maybe format like this.

我可以使用%.2f打印更漂亮,但是,

pi = 3.141

pi = 3.1415

代码应更改为%.3f%.4f

但C ++中的cout会自动更改此格式,以便打印

3.14
3.141
3.1415

只需使用cout << pi;

所以,我想知道的是我能用C做到这一点吗?不使用cout

我必须使用FILE指针。所以我无法使用cout

但是要打印双型漂亮。不喜欢3.1400000 ...太丑了。

不要使用%.2f.3f ...

双倍的价值应该是灵活的。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以使用%g中的printf格式说明符。这是一个简单的程序来演示它:

#include<stdio.h>
int main()
{
    double pi=3.14;
    printf("%g\n",pi);
    pi=3.141;
    printf("%g\n",pi);
    pi=3.1415;
    printf("%g\n",pi);
    return 0;
}

输出:

3.14
3.141
3.1415