float 的 C printf 格式

标签 c

我试过下面的代码

int main()
{
    float a = 1.0, b = 25.16;
    printf("%2.1f\n", a);
    printf("%2.1f\n", b);
}

我期望的结果是:

 1.0
25.2

而是显示:

1.0
25.2

为什么不排队?

最佳答案

格式字符串中的第一个数字是最小字段宽度,它包括所有字符,包括小数点。在您的情况下,字段宽度需要至少为 4 才能使小数点对齐。

所以你想要

int main( void )
{
    float a = 1.0, b = 25.16;
    printf("%4.1f\n", a);
    printf("%4.1f\n", b);
}

关于 float 的 C printf 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35096537/

相关文章:

c++ - "Configure: Error: Could Not Find a Working Compiler, See config.log For Details"

c++ - CMake 包含和源路径与 Windows 目录路径不同

c - 根据条件从队列中删除

c - 中断 C 内的断点

将 int 转换为指针 - 为什么要先转换为 long? (如 p = (void*) 42; )

c++ - 结构一字节对齐与体系结构的对齐要求冲突?

c - 使用 ASM 函数覆盖弱 C 函数别名

c# - 如何在 C# 程序中使用 C dll

c - 使用 fgets 和 sscanf 的意外重复

c - 在 c 中将文本读入缓冲区。 (当文本文件中没有换行符时,省略最后一行数据)