如何从变量中指定浮点小数精度?

我有以下重复的简单代码重复几次,我想为一个函数:
for i in range(10):
    id  = "some id string looked up in dict"
    val = 63.4568900932840928 # some floating point number in dict corresponding to "id"
    tabStr += '%-15s = %6.1fn' % (id,val)
我希望能够调用此功能:
def printStr(precision)
它预先形成上面的代码并返回
tabStr
val
precision
小数点。 例如:
printStr(3)
tabStr
中返回
val
val
。 任何想法如何实现这种功能?     
已邀请:
tabStr += '%-15s = %6.*fn' % (id, i, val)  
其中
i
是小数位数。 顺便说一句,在最近的where11ѭ取代
%
的Python中,你可以使用
"{0:<15} = {2:6.{1}f}".format(id, i, val)
为了同样的任务。 或者,为了清楚起见使用字段名称:
"{id:<15} = {val:6.{i}f}".format(id=id, i=i, val=val)
如果您使用的是Python 3.6+,则只需使用f-strings:
f"{id:<15} = {val:6.{i}f}"
    
我知道这是一个旧线程,但有一个更简单的方法来做到这一点: 试试这个:
def printStr(FloatNumber, Precision):
    return "%0.*f" % (Precision, FloatNumber)
    
这应该也有效
tabStr += '%-15s = ' % id + str(round(val, i))
其中
i
是所需的精度。     

要回复问题请先登录注册