如何格式化python中float的最小位数

时间:2018-05-02 18:31:28

标签: python

是否有一种简单的方法来格式化浮点数,以便至少有一个尾随数字,但允许存在多少个?期望的输出将低于:

x = function(1)
x = '1.0'

y = function(1.1)
y = '1.1'

z = function(1.2345)
z = '1.2345'

使用'%。1f'将添加尾随零,但它也会剪切任何更长的值。我可以将一个小函数组合在一起,检查该值是否为整数并添加“.0”,但这似乎是非pythonic。

def function(value):
    if int(value) == value:
        form_string = '%i.0' % value
    else:
        form_string = ('%f' % value).rstrip('0')

    return form_string 

谢谢!

2 个答案:

答案 0 :(得分:4)

只需转换为字符串并检查.是否存在?

def function(value):
    ret = str(value)
    if '.' not in ret:
        ret += '.0'
    return ret

无论如何,str(float(value))具有相同的效果,如果您处理值(即小于~10 15 )。

答案 1 :(得分:0)

只是添加一个答案,对于一个固定的“我希望在句点之后至少有一个数字”,你只需将其格式化为float:

def parse(a):
    return str(float(a))