use*_*691 2 c floating-point printf
我如何制作一个程序允许用户选择他们希望在浮动值中打印多少个小数空格?
例如,以下代码
#include <stdio.h>
int main(){
float x;
x = 0.67183377;
printf("%.2f\n", x);
}
Run Code Online (Sandbox Code Playgroud)
会给我们一个输出.0.67但是如果用户想要查看完整的数字,或者直到第四个小数位,那该怎么办.他们会怎么做?
请参阅printf()详细信息.使用:
printf("%.*f\n", n, x);
Run Code Online (Sandbox Code Playgroud)
where n是int包含要打印的小数位数.请注意,a 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);
}
Run Code Online (Sandbox Code Playgroud)
示例输出:
1
0.7
0.67
0.672
0.6718
0.67183
0.671834
0.6718338
0.67183375
0.671833754
Run Code Online (Sandbox Code Playgroud)
该值double在传递到之前转换为a ,printf()因为所有可变参数函数都会发生这种情况.当x更改为a时double,输出为:
1
0.7
0.67
0.672
0.6718
0.67183
0.671834
0.6718338
0.67183377
0.671833770
Run Code Online (Sandbox Code Playgroud)