如何填充 printf 以考虑负号和可变长度数字?

发布于 2024-10-22 23:09:24 字数 467 浏览 3 评论 0原文

我正在尝试在日志文件中输出一些数字,并且想通过 printf 函数填充浮点数以生成:

 058.0
 020.0
 038.0
-050.0
 800.0
 150.0
 100.0

目前我正在这样做:

printf("% 03.1f\n", myVar);

...其中 myVar 是浮点数。该语句的输出如下所示:

58.0
20.0
38.0
-50.0
800.0
150.0
100.0

我读过的内容 我希望我的代码能够产生我在本文顶部提到的输出,但显然有些问题。一次只能使用一个标志吗? ..或者这里还有其他事情发生吗?

I'm trying to output some numbers in a log file and I want to pad a load of floats via the printf function to produce:

 058.0
 020.0
 038.0
-050.0
 800.0
 150.0
 100.0

Currently I'm doing this:

printf("% 03.1f\n", myVar);

...where myVar is a float. The output from that statement looks like this:

58.0
20.0
38.0
-50.0
800.0
150.0
100.0

From what I've read I would expect my code to produce the output I mentioned at the top of this post, but clearly something is wrong. Can you only use one flag at a time? ..or is there something else going on here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

静水深流 2024-10-29 23:09:24

宽度说明符是完整的宽度:

printf("%05.1f\n", myVar);  // Total width 5, pad with 0, one digit after .

要获得您期望的格式:

printf("% 06.1f\n", myVar);

The width specifier is the complete width:

printf("%05.1f\n", myVar);  // Total width 5, pad with 0, one digit after .

To get your expected format:

printf("% 06.1f\n", myVar);
蘸点软妹酱 2024-10-29 23:09:24

跟随埃里克,
但我发现

printf("% 6.1f\n", myVar);

也有效。

follows Erik,
but I find

printf("% 6.1f\n", myVar);

also works.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文