首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >printf格式带填充的浮点型

printf格式带填充的浮点型
EN

Stack Overflow用户
提问于 2013-03-07 17:58:53
回答 2查看 39.2K关注 0票数 34

下面的测试代码产生了一个不需要的输出,即使我使用了一个width参数:

int main(int , char* [])
{
    float test = 1234.5f;
    float test2 = 14.5f;

    printf("ABC %5.1f DEF\n", test);
    printf("ABC %5.1f DEF\n", test2);

    return 0;
}

输出

ABC 1234.5 DEF   
ABC  14.5 DEF

如何实现这样的输出,使用哪种格式的字符串?

ABC 1234.5 DEF   
ABC   14.5 DEF
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-07 18:01:03

以下代码应正确排列所有内容:

printf("ABC %6.1f DEF\n", test);
printf("ABC %6.1f DEF\n", test2);

当我运行这段代码时,我得到:

ABC 1234.5 DEF
ABC   14.5 DEF

问题是,在%5.1f中,5是分配给整个数字的字符数,而1234.5接受的字符数超过5个。这会导致与14.5不对齐,它只能容纳五个字符。

票数 61
EN

Stack Overflow用户

发布于 2013-03-07 18:01:39

您正在尝试打印比5个字符更宽的内容,因此请将长度说明符设置得更大:

printf("ABC %6.1f DEF\n", test);
printf("ABC %6.1f DEF\n", test2);

第一个值不是“点前的位数”,而是“总长度”。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15268088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档