7

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

以下代码行正好打印 2:

printf("%.2lf", x);

但假设我有一个变量:

int precision = 2;

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

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

谢谢

4

4 回答 4

10

有可能的:

#include <stdio.h>

int main() {
    int precision = 3;
    float b = 6.412355;
    printf("%.*lf\n",precision,b);
    return 0;
}
于 2013-09-01T10:57:15.790 回答
8

是的,你可以很容易地做到这一点 -

int precision = 2;
printf("%.*lf", precision, x);
于 2013-09-01T10:55:36.467 回答
3

是的: printf("%*d", width, num): 见这里: http: //linux.die.net/man/3/printf

如果您使用的是 C++,您可以结合使用: httpstd::cout : //www.cplusplus.com/reference/ios/ios_base/precision/ios_base::precision()

于 2013-09-01T10:58:32.370 回答
2

如果你使用 C++,你可以使用 setprecision :

#include <iostream>
#include <iomanip>      // std::setprecision

int main () {
    int precision = 2;
    double f =3.14159;

    std::cout << std::setprecision(precision) << f << '\n';
    ++precision;
    std::cout << std::setprecision(precision) << f << '\n';

    return 0;
}

输出

3.1
3.14

你可以在这里阅读更多关于它的信息

于 2013-09-01T11:02:33.110 回答