如何控制浮点数中打印的小数位数?

时间:2015-01-04 14:26:13

标签: c precision

我想控制打印浮点数时小数点后打印的位数。

该功能将n作为输入。

例如,如果我有double F = 123.456789,并且:

  • 如果n = 2,则输出123.46
  • 如果n = 3,则输出123.457
  • 如果n = 10,则输出123.4567890000

3 个答案:

答案 0 :(得分:3)

你可以这样做:

printf("%.2lf\n", F);
printf("%.3lf\n", F);
printf("%.10lf\n", F);

如果您想控制它,可以使用*修饰符作为占位符。

int n;
double F = 123.456789;
scanf("%d", &n);
printf("%.*lf\n",n, F);

答案 1 :(得分:2)

这应该适合你:

#include <stdio.h>

int main() {

    int n = 2;
    double number = 123.456789;

    printf("%.*lf", n, number);  

    return 0;

}

输出:

123.46

答案 2 :(得分:0)

使用格式说明符。例子:

%.4f    (print as a floating point with a precision of four characters after the decimal point)
%3.2f   (print as a floating point at least 3 wide and a precision of 2)

请阅读:http://www.codingunit.com/printf-format-specifiers-format-conversions-and-formatted-output