【问题标题】:How to print significant digits only?如何仅打印有效数字?
【发布时间】:2021-05-14 12:54:20
【问题描述】:

我还没有找到答案...

假设我有以下有理数: 0.00000857 和 1.03。

使用 %f 舍入到 6 位,因此 0.00000857 变为 0.000009。 1.03 也将被填充到 1.030000。设置 .8f 会将 0.00000857 打印为 0.00000857,但会填充 1.03。 %g 返回指数符号,我不想要它。

如何按原样打印(字符串化)这两个数字,即 0.00000857 和 1.03?

【问题讨论】:

  • 也许这个答案可以帮助你:stackoverflow.com/questions/65972737/…
  • 可能有更好的方法,但这行得通"{0:.8f}".format(x).rstrip('0')
  • “原样”是什么意思?您熟悉计算机如何处理浮点数吗?如果没有,请查一下

标签: python string-formatting number-formatting


【解决方案1】:

您可以将浮点数四舍五入到所需的小数位(在您的情况下为 6),然后将其格式化为这样。

print('{:.6f}'.format(0.00000857))

删除不需要的尾随零:

print('{:.6f}'.format(1.03).rstrip('0').rstrip('.'))

【讨论】:

  • 正如我所说,这将打印 1.030000 而不是 1.03。
  • 希望这能满足您的需求 print('{:.6f}'.format(1.03).rstrip('0').rstrip('.'))
  • 请参考这里的答案stackoverflow.com/a/2440786/6521915
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
相关资源
最近更新 更多