Format a number containing a decimal point with leading zeroes

3eee3 picture 3eee3 · Sep 13, 2011 · Viewed 21.9k times · Source

I want to format a number with a decimal point in it with leading zeros.

This

>>> '3.3'.zfill(5)
003.3

considers all the digits and even the decimal point. Is there a function in python that considers only the whole part?

I only need to format simple numbers with no more than five decimal places. Also, using %5f seems to consider trailing instead of leading zeros.

Answer

rumpel picture rumpel · Sep 13, 2011

Is that what you look for?

>>> "%07.1f" % 2.11
'00002.1'

So according to your comment, I can come up with this one (although not as elegant anymore):

>>> fmt = lambda x : "%04d" % x + str(x%1)[1:]
>>> fmt(3.1)
0003.1
>>> fmt(3.158)
0003.158