Python:浮点到字符串,小数点后的位置数可变

Python:浮点到字符串,小数点后的位置数可变,python,Python,我需要将浮点值表示为小数点后具有不同位置数的字符串,应该由变量设置,而不是像%.2f那样硬编码 现在我使用的是圆形方法: def float_to_str(value, digits): return str(round(value, digits)) 此函数会剪切额外的数字,因此结果的位数不会超过指定的位数。但它不会添加尾随的零 float_to_str(1.3573, 2) => "1.35" - OK float_to_str(1.3573, 3) =>

我需要将浮点值表示为小数点后具有不同位置数的字符串,应该由变量设置,而不是像%.2f那样硬编码

现在我使用的是圆形方法:

def float_to_str(value, digits):
    return str(round(value, digits))
此函数会剪切额外的数字,因此结果的位数不会超过指定的位数。但它不会添加尾随的零

float_to_str(1.3573, 2)   =>  "1.35"  - OK 
float_to_str(1.3573, 3)   =>  "1.357" - OK 
float_to_str(1.3000, 2)   =>  "1.3"   - NOT OK (needed "1.30")
是否有更好的方法来实现此函数?

您应该使用format函数,它可以使用类似于%.2f的语法,并将其格式化:

def float_to_str(value, digits):
    return "{value:.{digits}f}".format(value=value, digits=digits)
您应该使用format函数,该函数可以使用类似于%.2f的语法,并对其进行格式化:

def float_to_str(value, digits):
    return "{value:.{digits}f}".format(value=value, digits=digits)
试试这个代码

def float_to_str(value, digits):
    formatting = '{:.' + str(digits) + 'f}'
    return formatting.format(round(value, digits))
有关在python中舍入数字但保留结尾零的更多信息,请参见尝试以下代码

def float_to_str(value, digits):
    formatting = '{:.' + str(digits) + 'f}'
    return formatting.format(round(value, digits))

有关在python中舍入数字但保留结尾零的详细信息,请参见

格式化迷你语言还允许嵌套替换:

def浮点值到右值,数字: 返回f{值:.{位数}f}
格式化迷你语言还允许嵌套替换:

def浮点值到右值,数字: 返回f{值:.{位数}f} 使用是一种可行的方法:

def浮动至标准温度,n: 返回f{x:.{n}f} 使用是一种可行的方法:

def浮动至标准温度,n: 返回f{x:.{n}f} 您可以使用*表示格式字符串中的可变宽度:

def float_to_str(value, digits):
    return "%.*f" % (digits, value)
您可以使用*表示格式字符串中的可变宽度:

def float_to_str(value, digits):
    return "%.*f" % (digits, value)