如何让用户决定他们想要在浮动中打印多少个小数位?

时间:2016-10-31 02:38:54

标签: c floating-point printf

如何让程序允许用户选择他们希望在浮动值中打印多少个小数?

例如,以下代码

#include <stdio.h>
int main(){
    float x;
    x = 0.67183377;
    printf("%.2f\n", x);
}

会给我们一个0.67的输出。但是如果用户希望看到完整的数字,或者直到第四个小数位,那该怎么办呢。他们将如何做到这一点?

1 个答案:

答案 0 :(得分:7)

有关详细信息,请参阅printf()。使用:

printf("%.*f\n", n, x);

其中nint,其中包含要打印的小数位数。请注意,float只能保存大约6-7个十进制数字;示例中的第8个将在很大程度上无关紧要。

#include <stdio.h>

int main(void)
{
    float x = 0.67183377;
    for (int n = 0; n < 10; n++)
        printf("%.*f\n", n, x);
    return(0);
}

示例输出:

1
0.7
0.67
0.672
0.6718
0.67183
0.671834
0.6718338
0.67183375
0.671833754

在将值传递给double之前,该值将转换为printf(),因为所有可变参数函数都会发生这种情况。当x更改为double时,输出为:

1
0.7
0.67
0.672
0.6718
0.67183
0.671834
0.6718338
0.67183377
0.671833770