Include the type specifier in your format expression:
>>> a = 10.1234
>>> f'{a:.2f}'
'10.12'
Answer from Robᵩ on Stack OverflowInclude the type specifier in your format expression:
>>> a = 10.1234
>>> f'{a:.2f}'
'10.12'
When it comes to float numbers, you can use format specifiers:
f'{value:<width>.<precision>}'
where:
valueis any expression that evaluates to a numberwidthspecifies the number of characters used in total to display, but ifvalueneeds more space than the width specifies then the additional space is used.precisionindicates the number of characters used after the decimal point
What you are missing is the type specifier for your decimal value. In this link, you an find the available presentation types for floating point and decimal.
Here you have some examples, using the f (Fixed point) presentation type:
# notice that it adds spaces to reach the number of characters specified by width
In [1]: f'{1 + 3 * 1.5:10.3f}'
Out[1]: ' 5.500'
# notice that it uses more characters than the ones specified in width
In [2]: f'{3000 + 3 ** (1 / 2):2.1f}'
Out[2]: '3001.7'
In [3]: f'{1.2345 + 4 ** (1 / 2):9.6f}'
Out[3]: ' 3.234500'
# omitting width but providing precision will use the required characters to display the number with the the specified decimal places
In [4]: f'{1.2345 + 3 * 2:.3f}'
Out[4]: '7.234'
# not specifying the format will display the number with as many digits as Python calculates
In [5]: f'{1.2345 + 3 * 0.5}'
Out[5]: '2.7344999999999997'
Does anyone have a concise cheat sheet for f string formatting with numbers
General way to print floats without the .0 part
python - Rounding floats with f-string - Stack Overflow
Trying to format a list of floats with f-strings
roots = [sqrt(i) for i in numbers]
print(f'Roots: {roots}')So Im trying to gain control of the precision of my floats, as Im practicing list comprehension and such, this particular print doesn't work.
I really dig these new fstrings but I cant figure out where to put in the ':.3f in the code.
print(f'Roots: {[root for root in roots]}')This is as far as ive come but when i put in the formatter on root its 'invalid syntax'