*Memos:
My post explains
Format Specification with format() (1).
My post explains Format Specification with format() (2).
My post explains Format Specification with format() (3).
My post explains Format Specification with format() (4).
My post explains f-strings.
My post explains format().
My post explains format_map().
My post explains a string.
:[f][a][s][z][#][0][w][g][.p][t] can format a string as shown below. *Format Specification Mini-Language explains more details:
<Format a string with float input by or not by 'g' or 'G'>:
v = 123456.78912
# | 11 |
print(v)
# 123456.78912
# | 11 |
print(f'"{v:.20g}"')
print(f'"{v:.20G}"')
print(f'"{v:.20}"')
# "123456.78912000000128"
# | 20 |
print(f'"{v:.18g}"')
print(f'"{v:.18G}"')
print(f'"{v:.18}"')
# "123456.789120000001"
# | 18 |
print(f'"{v:.17g}"')
print(f'"{v:.17G}"')
print(f'"{v:.17}"')
print(f'"{v:.11g}"')
print(f'"{v:.11G}"')
print(f'"{v:.11}"')
print(f'"{v:}"')
print(f'"{v}"')
# "123456.78912"
# | 11 |
print(f'"{v:.10g}"')
print(f'"{v:.10G}"')
print(f'"{v:.10}"')
# "123456.7891"
# | 10 |
print(f'"{v:.9g}"')
print(f'"{v:.9G}"')
print(f'"{v:.9}"')
# "123456.789"
# | 9 |
print(f'"{v:.8g}"')
print(f'"{v:.8G}"')
print(f'"{v:.8}"')
# "123456.79"
# | 8 |
print(f'"{v:.7g}"')
print(f'"{v:.7G}"')
print(f'"{v:.7}"')
# "123456.8"
# | 7 |
print(f'"{v:.6g}"')
print(f'"{v:.6G}"')
print(f'"{v:g}"')
print(f'"{v:G}"')
# "123457"
# | 6 |
print(f'"{v:.6}"')
# "1.23457e+05"
# | 6 |
print(f'"{v:.5g}"')
print(f'"{v:.5}"')
# "1.2346e+05"
# | 5 |
print(f'"{v:.5G}"')
# "1.2346E+05"
# | 5 |
print(f'"{v:.4g}"')
print(f'"{v:.4}"')
# "1.235e+05"
# | 4 |
print(f'"{v:.4G}"')
# "1.235E+05"
# | 4 |
print(f'"{v:.3g}"')
print(f'"{v:.3}"')
# "1.23e+05"
# |3 |
print(f'"{v:.3G}"')
# "1.23E+05"
# |3 |
print(f'"{v:.2g}"')
print(f'"{v:.2}"')
# "1.2e+05"
# |2|
print(f'"{v:.2G}"')
# "1.2E+05"
# |2|
print(f'"{v:.1g}"')
print(f'"{v:.1}"')
print(f'"{v:.0g}"')
print(f'"{v:.0}"')
# "1e+05"
print(f'"{v:.1G}"')
print(f'"{v:.0G}"')
# "1E+05"
print(f'"{v:#.1g}"')
print(f'"{v:#.1}"')
print(f'"{v:#.0g}"')
print(f'"{v:#.0}"')
# "1.e+05"
print(f'"{v:#.1G}"')
print(f'"{v:#.0G}"')
# "1.E+05"
print(f'"{v:,.20g}"')
print(f'"{v:,.20G}"')
print(f'"{v:,.20}"')
# "123,456.78912000000128"
# | 20 |
print(f'"{v:,g}"')
print(f'"{v:,G}"')
# "123,457"
# | 6 |
print(f'"{v:,}"')
# "123,456.78912"
# | 11 |
print(f'"{v:_.20g}"')
print(f'"{v:_.20G}"')
# "123_456.78912000000128"
# | 20 |
print(f'"{v:_g}"')
print(f'"{v:_G}"')
# "123_457"
# | 6 |
print(f'"{v:_}"')
# "123_456.78912"
# | 11 |
print(f'{float('nan'):g} {float('inf'):g}')
# nan inf
print(f'{float('nan'):G} {float('inf'):G}')
# NAN INF
<Format a string with Decimal() input by or not by 'g' or 'G'>:
v = Decimal('123456.78912')
# | 11 |
print(v)
# 123456.78912
# | 11 |
print(f'"{v:.20g}"')
print(f'"{v:.20G}"')
print(f'"{v:.20}"')
print(f'"{v:.18g}"')
print(f'"{v:.18G}"')
print(f'"{v:.18}"')
print(f'"{v:.17g}"')
print(f'"{v:.17G}"')
print(f'"{v:.17}"')
print(f'"{v:.11g}"')
print(f'"{v:.11G}"')
print(f'"{v:.11}"')
print(f'"{v:g}"')
print(f'"{v:G}"')
print(f'"{v:}"')
print(f'"{v}"')
# "123456.78912"
# | 11 |
print(f'"{v:.10g}"')
print(f'"{v:.10G}"')
print(f'"{v:.10}"')
# "123456.7891"
# | 10 |
print(f'"{v:.9g}"')
print(f'"{v:.9G}"')
print(f'"{v:.9}"')
# "123456.789"
# | 9 |
print(f'"{v:.8g}"')
print(f'"{v:.8G}"')
print(f'"{v:.8}"')
# "123456.79"
# | 8 |
print(f'"{v:.7g}"')
print(f'"{v:.7G}"')
print(f'"{v:.7}"')
# "123456.8"
# | 7 |
print(f'"{v:.6g}"')
print(f'"{v:.6G}"')
print(f'"{v:.6}"')
# "123457"
# | 6 |
print(f'"{v:.5g}"')
# "1.2346e+5"
# | 5 |
print(f'"{v:.5G}"')
print(f'"{v:.5}"')
# "1.2346E+5"
# | 5 |
print(f'"{v:.4g}"')
# "1.235e+5"
# | 4 |
print(f'"{v:.4G}"')
print(f'"{v:.4}"')
# "1.235E+5"
# | 4 |
print(f'"{v:.3g}"')
# "1.23e+5"
# |3 |
print(f'"{v:.3G}"')
print(f'"{v:.3}"')
# "1.23E+5"
# |3 |
print(f'"{v:.2g}"')
# "1.2e+5"
# |2|
print(f'"{v:.2G}"')
print(f'"{v:.2}"')
# "1.2E+5"
# |2|
print(f'"{v:.1g}"')
print(f'"{v:.0g}"')
# "1e+5"
print(f'"{v:.1G}"')
print(f'"{v:.1}"')
print(f'"{v:.0G}"')
print(f'"{v:.0}"')
# "1E+5"
print(f'"{v:#.1g}"')
print(f'"{v:#.0g}"')
# "1.e+5"
print(f'"{v:#.1G}"')
print(f'"{v:#.1}"')
print(f'"{v:#.0G}"')
print(f'"{v:#.0}"')
# "1.E+5"
print(f'"{v:,.20g}"')
print(f'"{v:,.20G}"')
print(f'"{v:,.20}"')
print(f'"{v:,g}"')
print(f'"{v:,G}"')
print(f'"{v:,}"')
# "123,456.78912"
# | 11 |
print(f'"{v:_.20g}"')
print(f'"{v:_.20G}"')
print(f'"{v:_.20}"')
print(f'"{v:_g}"')
print(f'"{v:_G}"')
print(f'"{v:_}"')
# ValueError: invalid format string
from decimal import Decimal
v1 = Decimal(value=float('nan'))
v2 = Decimal(value=float('inf'))
print(f'"{v1:g} {v2:g}"')
print(f'"{v1:G} {v2:G}"')
# "NaN Infinity"