【问题标题】:Printing a decimal place打印小数位
【发布时间】:2015-12-19 06:52:30
【问题描述】:

如何将1.371429 设为01.37。不是%2.02f吗?我需要有一个前导零,并将其四舍五入到小数点后两位。

【问题讨论】:

    标签: c printf double


    【解决方案1】:

    试试这个:

    #include<stdio.h>
    
    int main()
    {
        double a = 1.2345666;
        printf("%05.2lf\n", a);
        return 0;
    }
    

    这里,05 表示“打印 5 列前导零”。 .2 说“打印十进制数字直到 2 列”。 2 个十进制数字 + 1 . + 2 个整数部分 => 您必须打印总共 5 列。

    【讨论】:

    • 为什么lf?, f 就够了。
    • %lf 中的 l 对于 printf 不是必需的,但对于 scanf 是必需的。使用 printf 时,float 参数被提升为 double
    • @MukitChowdhury, lf 表示 long double, l 在 C99 中被忽略,但在 C89 中会导致未定义的行为
    • @MukitChowdhury,不,他们不一样,谁告诉你的?
    • @AlterMann 是的,第二部分没问题,但我的意思是你应该在第一部分使用大写的L"lf 表示 long double")。
    猜你喜欢
    • 2017-12-31
    • 2017-05-04
    • 2013-12-06
    • 1970-01-01
    • 2021-05-15
    • 2020-10-18
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    相关资源
    最近更新 更多