How to specify floating point decimal precision from variable?
15,590
Solution 1
tabStr += '%-15s = %6.*f\n' % (id, i, val)
where i
is the number of decimal places.
BTW, in the recent Python where .format()
has superseded %
, you could use
"{0:<15} = {2:6.{1}f}".format(id, i, val)
for the same task.
Or, with field names for clarity:
"{id:<15} = {val:6.{i}f}".format(id=id, i=i, val=val)
If you are using Python 3.6+, you could simply use f-strings:
f"{id:<15} = {val:6.{i}f}"
Solution 2
I know this an old thread, but there is a much simpler way to do this:
Try this:
def printStr(FloatNumber, Precision):
return "%0.*f" % (Precision, FloatNumber)
Related videos on Youtube
Author by
Jeremy
Updated on August 31, 2020Comments
-
Jeremy over 3 years
I have the following repetitive simple code repeated several times that I would like to make a function for:
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)
I want to be able to call this function:
def printStr(precision)
Where it preforms the code above and returnstabStr
withval
toprecision
decimal points.For example:
printStr(3)
would return63.457
forval
intabStr
.Any ideas how to accomplish this kind of functionality?