首页 > 解决方案 > python:格式化具有最大小数位数的浮点字符串

问题描述

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

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

有没有办法让这个在python中格式化?还是有必要通过算法来做到这一点?

标签: pythonstringformattingnumber-formatting

解决方案


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

例如:

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

推荐阅读