在小数点前显示固定宽度的浮点数

Displaying fixed width floating point number before decimal

我想显示小数点前固定宽度的浮点数。到目前为止,我设法通过取整数部分、显示所需宽度并在数值前使用“%03d”填充 0,然后显示小数部分来做到这一点。 我想知道是否有标准的显示方式,例如“%3.3f”。 我尝试了以下

printf("value: %3.3f", value);

但是结果只有小数点前一位

如何实现?

你几乎可以做到。 printf("value: %M.Nf", value); 将至少显示 M 个字符和小数点后 N 位数字。

printf("value: %9.3f", -123.4);   --> " -123.400"
printf("value: %9.3f", 123456.0); --> "123456.000"

你可以使用

printf("%07.3f", value);

其中 07 表示打印至少 7 个字符并填充零。

例如

printf("%07.3f", 3.3);

打印

003.300

冒着成为一个强大的电力消费者的风险,使用这种格式..

double offset = 3.14159;
printf("Offset: %06d.%02d sec", (int)offset, (int)(100*(offset - (int)offset)));
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch(), system("pause"), or input loop */

int main(int argc, char *argv[]) {

    printf("%08.3f", -7.193583);
    return 0;
}