gpt4 book ai didi

c - 为什么 printf() 格式不适用于全 0 的十进制数?

转载 作者:太空狗 更新时间:2023-10-29 16:12:25 26 4
gpt4 key购买 nike

我想不通:

gettimeofday(&time,NULL);
float stamp = ( (time.tv_sec*1000000)+(time.tv_usec) );

printf("Time Stamp = %08.3f\n",12345678.123);
printf("Time Stamp = %08.3f\n",stamp);
printf("Time Stamp = %08.3f\n",00000000.000);

输出:

Time Stamp = 12345678.123    
Time Stamp = 637973952.000
Time Stamp = 0000.000 //?

最后一个printf怎么不打印小数点前8个0(只打印4个)?

我的目标是打印一个时间戳,小数点左边有 8 位,右边有 3 位。 (始终,如果数字较小,则插入填充的 0)。

最佳答案

小数点左边的“8”不是要打印到小数点左边的位数,而是要打印的总位数,包括小数点本身。如果你想看到小数点左边的 8 位数字和右边的 3 位数字(和小数点),你应该使用

printf("Time Stamp = %012.3f\n", stamp);  // 8 to the left + 1 for d.p. + 3 to the right = 12

希望对您有所帮助!

关于c - 为什么 printf() 格式不适用于全 0 的十进制数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24216580/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com