python:格式化具有最大小数位数的浮点字符串[重复]

Posted

技术标签:

【中文标题】python:格式化具有最大小数位数的浮点字符串[重复]【英文标题】:python: format float string with maximum number of decimals [duplicate] 【发布时间】: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? 【参考方案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'

【讨论】:

以上是关于python:格式化具有最大小数位数的浮点字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章

python字符串格式化

c语言如何控制小数位数

Python如何取小数点位数

c语言如何控制小数位数?

C 语言中双精度浮点型精度怎样保留位数

python 浮点运算 及 小数点精确位数