首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C++中从%f中移除前导和尾随零

在C++中从%f中移除前导和尾随零
EN

Stack Overflow用户
提问于 2015-07-20 17:18:41
回答 1查看 924关注 0票数 1

从使用%f的C++字符串格式化程序中删除前导和尾随零的最佳方法是什么。还有一个类似的问题,Avoid trailing zeroes in printf(),但它只要求使用%g格式化程序。

%g格式化程序将输出600000000009作为6e+11

我只想从%f _g中移除前导和尾随零:

  • 000.001 -> 0.001
  • 00.100 -> 0.100
  • .10 -> 0.1
  • 2.0 -> 2

欢迎任何想法/建议。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-20 17:23:50

在大多数情况下有效的动态格式只是

代码语言:javascript
复制
%.15g

这意味着可以达到 15位的精度。

一种更好的方法是从15位开始,检查atof(result)是否与输入相同,增加数字的数量,直到匹配为止。

直接使用最大位数可能是个坏主意,因为格式化(例如,使用18位数字的0.1 )会给用户带来一个看起来很奇怪的表示。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31522505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档