string – How to format a floating number to fixed width in Python

string – How to format a floating number to fixed width in Python

numbers = [23.23, 0.1233, 1.0, 4.223, 9887.2]                                                                                                                                                   
                                                                                                                                                                                                
for x in numbers:                                                                                                                                                                               
    print({:10.4f}.format(x)) 

prints

   23.2300
    0.1233
    1.0000
    4.2230
 9887.2000

The format specifier inside the curly braces follows the Python format string syntax. Specifically, in this case, it consists of the following parts:

  • The empty string before the colon means take the next provided argument to format() – in this case the x as the only argument.
  • The 10.4f part after the colon is the format specification.
  • The f denotes fixed-point notation.
  • The 10 is the total width of the field being printed, lefted-padded by spaces.
  • The 4 is the number of digits after the decimal point.

It has been a few years since this was answered, but as of Python 3.6 (PEP498) you could use the new f-strings:

numbers = [23.23, 0.123334987, 1, 4.223, 9887.2]

for number in numbers:
    print(f{number:9.4f})

Prints:

  23.2300
   0.1233
   1.0000
   4.2230
9887.2000

string – How to format a floating number to fixed width in Python

In python3 the following works:

>>> v=10.4
>>> print(% 6.2f % v)
  10.40
>>> print(% 12.1f % v)
        10.4
>>> print(%012.1f % v)
0000000010.4

Leave a Reply

Your email address will not be published. Required fields are marked *