[英]How to specify floating point decimal precision from variable?
我将以下重复的简单代码重复了几次,我想为其提供以下功能:
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.1f\n' % (id,val)
我希望能够调用此函数: def printStr(precision)
它在上面执行上述代码,并返回带有val
tabStr
到precision
小数点。
例如: printStr(3)
将返回63.457
的val
在tabStr
。
任何想法如何完成这种功能?
tabStr += '%-15s = %6.*f\n' % (id, i, val)
i
是小数位数。
顺便说一句,在最近的Python中, .format()
取代了%
,您可以使用
"{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
是要求的精度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.