c - C中的 %0.f 和 %.f 有区别吗
问题描述
我正在尝试将浮点数打印到没有小数位,我使用了 %0.f 和 %.f 他们给了我相同的结果。它们之间有区别吗?
解决方案
是的,它们是一样的。
小数点左边的数字是在用空格填充之前要打印的最小位数。
如果该数字以零开头,则还表明该数字应该用零而不是空格填充。对于零长度,将不应用填充。打印长度小于零的数字是不可能的,因此永远不会使用附加的填充指示符。
在任何一种情况下,都必须打印一些数字,这意味着即使您表示您想要一个最小长度为零的浮点数,它也会打印出超过最小长度以显示数字的值。对于您的测试用例,printf("%0.f", 0.0f)
将显示的输出0
决定打印超过最小字符数以显示该数字。
对于那些混淆注意%0.f
,%.0f
一个指定最小位数,另一个是精度修饰符。
对于浮点数,.
字符的存在表示指定的精度,右侧没有数字被解释为0
. 所以%3.0f
和%3.f
是等价的。如果您没有在浮点数中提供 a .
,则假定您的浮点数有效地格式化为.6
推荐阅读
- html - offset-path CSS 属性使 SVG 元素消失
- uwp - 如何更改 UWP TabViewItem 角半径?
- laravel - laravel-echo-server 使用实时 redis 服务器
- javascript - Tampermonkey 中未定义的函数
- maven - 使用 Gradle Kotlin DSL 发布 Kotlin MPP 元数据
- angular - 在 HTML 模板中调用时,默认 TS/JS 数据类型的方法会触发检测更改吗?
- php - Laravel Cashier 在 heroku 上不发送 POST 请求正文
- amazon-web-services - 具有事件模式的 Terraform AWS Cloudwatch 规则不起作用
- excel - 使用 excel 公开服务 oData 或 Rest?
- git - 使用 git rev-list --oneline 时如何显示提交日期?