我如何格式化一个浮点数,使它不包含尾随零?换句话说,我希望得到的字符串尽可能短。

例如:

3 -> "3"
3. -> "3"
3.0 -> "3"
3.1 -> "3.1"
3.14 -> "3.14"
3.140 -> "3.14"

当前回答

以下是答案:

import numpy

num1 = 3.1400
num2 = 3.000
numpy.format_float_positional(num1, 3, trim='-')
numpy.format_float_positional(num2, 3, trim='-')

输出“3.14”和“3”

Trim ='-'删除后面的0和小数。

其他回答

你可以用最python的方式来实现:

python3:

"{:0.0f}".format(num)

处理%f和你应该放

% .2f

,地点: .2f == .00浮动。

例子:

价格:%。2f" %价格[产品]

输出:

价格:1.50

你可以像这样使用max():

打印(max (int (x), x)

我呢,我会用('%f' % x).rstrip('0').rstrip('.')——保证定点格式,而不是科学符号,等等。是的,不像%g那么流畅和优雅,但是,它是有效的(而且我不知道如何强迫%g永远不使用科学符号;-)。

如果你能接受3个。3.0以“3.0”的形式出现,这是一种非常简单的方法,从浮点数表示中右移零:

print("%s"%3.140)

(感谢@ellimilial指出了例外情况)