C语言中能否用变量控制float精度

问题遇到的现象和发生背景

比如%.3f, 其中的3有没有办法通过输入给变量赋值进行更改

主要明白printf的本质就好了,它其实就是个字符串而已,printf 查询到了、并能解析。
按照这个思路就可以解决问题。。。。

#include <stdio.h>

#define PRINT_FORMAT_FLOAT(x)   "%."#x"f"

int main()
{
    float a = 1.23;

    printf("now print a: " PRINT_FORMAT_FLOAT(3) "\n", a);
    
    int b = 4;
    printf("%.*f\n", b, a);

    return 0;
}

希望对你有所帮助,也能被你采纳,若有其他问题 ,欢迎随时交流~~~~

可以用文件的形式保存你需要指定输出个数,通过.格式控制位

char c[]="%.3f";
printf(c,1.123456);
printf的第一个参数就是个字符串,根据需要拼接好后传给它就行了

没试过,宏定义有可能好用。但不是变量。

好像没有