   # What does .2f mean in Python f-strings? Format a float with certain decimal places

Here is an example to format a float to two or three decimal points in Python.

``````a = 123.4567

s0 = '{:.0f}'.format(a)
s1 = '{:.1f}'.format(a)
s2 = '{:.2f}'.format(a)
s3 = '{:.3f}'.format(a)
s4 = '{:.4f}'.format(a)
s5 = '{:.5f}'.format(a)

print(a)  # 123.4567
print(s0)  # 123
print(s1)  # 123.5
print(s2)  # 123.46
print(s3)  # 123.457
print(s4)  # 123.4567
print(s5)  # 123.45670

print(type(s3))  # <class 'str'>
``````

The `s0` doesn't have the decimal part because the format specification, which is after a colon in the curly braces like `.2f`, set 0 digits. The `s4` has 4 digits in the decimal parts because its format specification is `.4f`. The `.` means the decimal point and the next number means the digits of displayed representation.

Or you can format a float using the Python f-strings. The f-string is a string with `f` prefix and can contain variables in the curly braces. The colon `:` is a kind of border between a variable and format specification.

``````a = 123.4567

s0 = f'{a:.0f}'
s1 = f'{a:.1f}'
s2 = f'{a:.2f}'
s3 = f'{a:.3f}'
s4 = f'{a:.4f}'
s5 = f'{a:.5f}'

print(a)  # 123.4567
print(s0)  # 123
print(s1)  # 123.5
print(s2)  # 123.46
print(s3)  # 123.457
print(s4)  # 123.4567
print(s5)  # 123.45670
``````