繁体   English   中英

如何格式化Python中的浮点数的最小位数

[英]How to format a minimum number of digits for a float in python

是否有一种简单的方法来格式化浮点数,以使至少有一个尾随数字,但可以容纳尽可能多的数字? 所需的输出如下:

x = function(1)
x = '1.0'

y = function(1.1)
y = '1.1'

z = function(1.2345)
z = '1.2345'

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

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

    return form_string 

谢谢!

只需将其转换为字符串并检查是否为. 在那儿?

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

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

只需添加一个答案,对于固定的“我希望句点后至少有一位数字”,您只需将其格式化为浮点数即可:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM