如何在同一行中将 %d 用作与 %f 的十进制整数?
How to use %d as a decimal integer with %f in the same line?
我想设计一个函数来打印浮点数 Y 的小数点后的第一个 X(其中 X 是整数)位(从 0 到 X)。例如。
print_num(12.123456,4)
应该给出:
12.0000000
12.1000000
12.1200000
12.1230000
12.1234000
这是我尝试编写的程序:
#include<stdio.h>
void printplaces(float N,int X)
{
for(int i =0;i<=X;i++)
{
printf("%.%df\n",N,i);
}
}
void main()
{
printplaces(23.23423342,5);
}
但它只是按原样打印输出:
%df
%df
%df
%df
%df
%df
我想知道如何将 %d 用作与 %f 位于同一行的整数。
您可以使用 *
代替精度。然后你可以给它传递一个 int
参数:
printf("%.*f\n", i, N);
这不会打印任何尾随零,但您可以按如下方式添加:
for (i=0;i<X;i++) {
printf("%#.*f", i, N);
if (i<X) printf("%0*d", X-i, 0);
printf("\n");
}
我想设计一个函数来打印浮点数 Y 的小数点后的第一个 X(其中 X 是整数)位(从 0 到 X)。例如。
print_num(12.123456,4)
应该给出:
12.0000000
12.1000000
12.1200000
12.1230000
12.1234000
这是我尝试编写的程序:
#include<stdio.h>
void printplaces(float N,int X)
{
for(int i =0;i<=X;i++)
{
printf("%.%df\n",N,i);
}
}
void main()
{
printplaces(23.23423342,5);
}
但它只是按原样打印输出:
%df
%df
%df
%df
%df
%df
我想知道如何将 %d 用作与 %f 位于同一行的整数。
您可以使用 *
代替精度。然后你可以给它传递一个 int
参数:
printf("%.*f\n", i, N);
这不会打印任何尾随零,但您可以按如下方式添加:
for (i=0;i<X;i++) {
printf("%#.*f", i, N);
if (i<X) printf("%0*d", X-i, 0);
printf("\n");
}