使用printf打印double的可变位数

pHb*_*its 6 c printf

任何人都知道是否可以使用printf打印VARIABLE位数?

以下代码行正好打印2:

printf("%.2lf", x);
Run Code Online (Sandbox Code Playgroud)

但是我要说我有一个变量:

int precision = 2;
Run Code Online (Sandbox Code Playgroud)

有没有办法在printf中使用它来指定位数?

否则我将不得不写一个'switch'或'if'结构.

谢谢

小智 9

有可能的:

#include <stdio.h>

int main() {
    int precision = 3;
    float b = 6.412355;
    printf("%.*lf\n",precision,b);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)


MD *_*med 8

是的,你可以轻松地做到这一点 -

int precision = 2;
printf("%.*lf", precision, x);
Run Code Online (Sandbox Code Playgroud)