How to Limit Floats to Two Decimal Points in Python
Created
Modified
Using format Method
You can use str.format() function to limit floats, it really simple. For example,
#!/usr/bin/python3
# -*- coding: utf8 -*-
f = 13.949999999999999
print("{:.2f}".format(f))
print(format(f, '.2f'))
# to float
print(float("{:.2f}".format(f)))
13.95 13.95 13.95
Using F-strings
F-strings provide a way to embed expressions inside string literals, using a minimal syntax. It should be noted that an f-string is really an expression evaluated at run time, not a constant value.
#!/usr/bin/python3
# -*- coding: utf8 -*-
a = 13.949999999999999
print(f'{a:.2f}')
a = 2.675
print(f'{a:.2f}')
a = 2.675222
print(f'{a:.2f}')
13.95 2.67 2.68
Using round Method
Round a number to a given precision in decimal digits. If ndigits is omitted or is None, it returns the nearest integer to its input.
For example,
#!/usr/bin/python3
# -*- coding: utf8 -*-
print(round(13.949999999999999, 2))
print(round(2.675, 2))
print(round(2.675222, 2))
print(round(1.5, 2))
print(round(1.5))
13.95 2.67 2.68 1.5 2
Another form of exact arithmetic is supported by the fractions module which implements arithmetic based on rational numbers (so the numbers like 1/3 can be represented exactly).
Using int Method
You can do the same as:
#!/usr/bin/python3
# -*- coding: utf8 -*-
f = 13.949999999999999
b = int(f*100 + 0.5) / 100.0
print(b)
f = 2.675
b = int(f*100 + 0.5) / 100.0
print(b)
13.95 2.68