【问题标题】:python: format float string with maximum number of decimals [duplicate]python:格式化具有最大小数位数的浮点字符串[重复]
【发布时间】:2020-04-12 16:35:38
【问题描述】:

我需要的类似于%.2f,但删除任何0. 结尾。
下面是一个示例,左侧是浮点数,右侧是所需的格式。

4525.0014436  ->   '4525'
4525.0091     ->   '4525.01'
4525.1036     ->   '4525.1'
4525.163465   ->   '4525.16'
4525.998      ->   '4526'

有没有办法在 python 中格式化?还是有必要通过算法来做?

【问题讨论】:

  • 第二个例子 - 为什么是 4525.1 而不是 4525.09?

标签: python string formatting number-formatting


【解决方案1】:

发现:使用%.2f格式化后只需使用rstrip('0.')

例如:

>>> ("%10.2f" % 4567.001).rstrip('0.')
'   4567'
>>> ("%10.2f" % 4567.009).rstrip('0.')
'   4567.01'
>>> ("%10.2f" % 4567.1004).rstrip('0.')
'   4567.1'

【讨论】:

    猜你喜欢
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 2016-10-04
    • 2015-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多