# Formatting options

Hi everyone,

I have as quick question. In this code
` print( 'Mem. usage decreased to {:5.2f} Mb ({:.1f}% reduction)')`
I get the 1 & 2 are for decimals but what the 5 is for?

Thanks  The `5.2f` sets the minimum field with to 5 and the number of digits after the decimal place to 2.

So the output will be padded with spaces on the left hand side to give a total width of at least 5:

``````'{:5.2f}'.format(1.5)  # returns ' 1.50' with a leading space
'{:5.2f}'.format(100.5)  # returns '100.50'
``````
1 Like

Many thanks for your help  For ‘coding exercise’, I’m working my way through an old book I have, converting the examples therein, into Python3 code.

This script, is a good demonstration of the formatting that you asked about.

``````#!/usr/bin/python3

#from page 8: The C Programming Language by K&R

#:- Print a table of Fahrenheit temperatures and their centigrade or Celsius equivalents
#:- using this formula {C = (5/9)(F-32)} and a step size of 20

lower = 0
upper = 300
step = 20

fahr = lower

while fahr <= upper:
celsius = (5.0/9.0) * (fahr-32.0)
print(f"{fahr:4.0f} {celsius:6.1f}")
fahr += step
``````

To paraphrase from said book…

`{fahr:4.0f}` says that a floating point number is to be printed in a space at least four characters wide, with no digits after the decimal point. `{celsius:6.1f}` describes another number to occupy at least six spaces, with one digit after the decimal point.

1 Like