以下是示例编程
#include<stdio.h>
#include<math.h>
main()
{
int x;
scanf("%d",&x);
printf("%.2f\n",(1/pow(2,x)));
}
这里我给.2f进行浮点格式化。我们也可以根据要求给出相应的.3f或.5f等。
假设我们不知道&#39;之前的小数点。&#39;它是打印的。我希望通过输入给出类似值n的内容,以便将小数点打印到n。
如.nf如果n = 5且x = 1,则打印0.50000,对于n = 3,应打印0.500
我如何实现这一目标?
答案 0 :(得分:8)
您可以将所需的精度指定为变量:
int n = 5;
printf("%.*f\n", n, (1.0/pow(2,x))); /* equivalent to %.5f */
引自man 3 printf
:
An optional precision, in the form of a period ('.') followed by an
optional decimal digit string. Instead of a decimal digit string one
may write "*" or "*m$" (for some decimal integer m) to specify that the
precision is given in the next argument, or in the m-th argument,
respectively, which must be of type int.