c - 是否有可能使用 printf 使点“浮动”取决于值?
问题描述
我希望转换后的字符串始终采用 N 个字符,有点像这样:
100000.f -> "00100000.0"
10000.f -> "00010000.0"
1000.f -> "00001000.0"
100.f -> "00000100.0"
10.f -> "00000010.0"
1.f -> "00000001.0"
0.1f -> "00000000.1"
0.01f -> "0000000.01"
0.001f -> "000000.001"
0.0001f -> "00000.0001"
或像这样:
100000.f -> "100000.000"
10000.f -> "10000.0000"
1000.f -> "1000.00000"
100.f -> "100.000000"
10.f -> "10.0000000"
1.f -> "1.00000000"
0.1f -> "0.10000000"
0.01f -> "0.01000000"
0.001f -> "0.00100000"
0.0001f -> "0.00010000"
当然,如果小数部分太大,字符串可能会变大,但到目前为止我并不担心。
我应该动态生成“%05.5f”格式字符串吗?
解决方案
不,您不必动态生成字符串。你可以这样做:
printf("%0*.5f", width, value);
您可以进一步自定义它,以获得可变精度:
printf("%0*.*f", width, precision, value);
推荐阅读
- python - Python/Scrapy 如何使用元一次传递所有数据?
- cloudkit - 无法从共享数据库中获取记录区域
- openstack - 如何从外部网络访问 MicroStack VM 实例
- javascript - 为什么单击事件在其他目标元素中不起作用?
- python - 在硬件上在 C++ 和 Python 之间进行通信的最佳方式是什么?
- python - 如何自动删除没有人的语音频道
- amazon-web-services - AWS IAM,限制账户只能查看和访问自己创建的资源?
- javascript - 弹跳多个盒子动画
- javascript - 如何合并两个Json
- java - 将二维数组的列拆分为单独的二维数组