【问题标题】:How to use %d as a decimal integer with %f in the same line?如何在同一行中使用 %d 作为十进制整数和 %f?
【发布时间】:2021-05-01 14:26:45
【问题描述】:

我想设计一个函数来打印浮点数 Y 的小数点后(从 0 到 X)的第一个 X(其中 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 在同一行。

【问题讨论】:

    标签: c floating-point printf


    【解决方案1】:

    您可以使用* 代替精度。然后你可以传递一个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");
    }
    

    【讨论】:

    • @plain-rice 很高兴我能帮上忙。如果您觉得有用,请随时 accept this answer
    • @EricPostpischil 谢谢。已更新。
    猜你喜欢
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    • 2010-10-16
    • 2013-05-19
    • 2011-04-21
    • 1970-01-01
    相关资源
    最近更新 更多