1

我需要打印.50.5使用printfC 语言中的语句。可以使用以下代码轻松完成。

printf("%03f", myfloatvalue);

但情况myfloatvalue是动态的。所以我不确定它是否是 3 个字符的数字,它可能是.5or.56.567。在上述情况下,我需要打印为0.50.560.567

4

2 回答 2

6

%g确实打印了浮点数的最短可能表示。

printf("%g",myfloatvalue);
于 2017-09-17T10:54:42.363 回答
3

继续我对弗洛里安的回答的评论,格式"%0g"将打印带有前导零的最短表示,例如

#include <stdio.h>

int main (void) {

    float f[] = { .5, .56, .567 };
    size_t n = sizeof f/sizeof *f;

    for (size_t i = 0; i < n; i++)
        printf ("%0g\n", f[i]);

    return 0;
}

示例使用/输出

$ ./bin/floatfmt
0.5
0.56
0.567
于 2017-09-17T11:08:08.813 回答