I need to floor a float number with an specific number of decimals.
So:
2.1235 with 2 decimals --> 2.12
2.1276 with 2 decimals --> 2.12 (round
If regular expressions are an option, you can give this a go:
import re
def truncate(n, d):
return float(re.search('\d+\.\d{}'.format(d), str(float(n)))[0])
print(truncate(2.1235, 2))
print(truncate(2.1276, 2))
Output:
2.12
2.12
Another solution using str.split
:
def truncate(n, d):
s = str(float(n)).split('.')
return float('{}.{}'.format(s[0], s[1][:d]))
print(truncate(2.1235, 2))
print(truncate(2.1276, 2))
Output:
2.12
2.12