DEV Community

Super Kai (Kazuya Ito)
Super Kai (Kazuya Ito)

Posted on • Edited on

format in Python (5)

Buy Me a Coffee

*Memo:

:[f][a][s][z][#][0][w][g][.p][t] can format a string with format() as shown below:

<Format a string with Decimal() by 'f' or 'F'>:

from decimal import Decimal v = Decimal(value='1234.5555555555') # | 10 | print(v) # 1234.5555555555 # | 10 |  print('"{:.20f}"'.format(v)) print('"{:.20F}"'.format(v)) # "1234.55555555550000000000" # | 20 |  print('"{:.15f}"'.format(v)) print('"{:.15F}"'.format(v)) # "1234.555555555500000" # | 15 |  print('"{:.10f}"'.format(v)) print('"{:.10F}"'.format(v)) print('"{:f}"'.format(v)) print('"{:F}"'.format(v)) # "1234.5555555555" # | 10 |  print('"{:.6f}"'.format(v)) print('"{:.6F}"'.format(v)) # "1234.555556" # | 6 |  print('"{:.2f}"'.format(v)) print('"{:.2F}"'.format(v)) # "1234.56"  print('"{:.1f}"'.format(v)) print('"{:.1F}"'.format(v)) # "1234.6"  print('"{:.0f}"'.format(v)) print('"{:.0F}"'.format(v)) # "1235"  print('"{:#.0f}"'.format(v)) print('"{:#.0F}"'.format(v)) # "1235."  print('"{:,.20f}"'.format(v)) print('"{:,.20F}"'.format(v)) # "1,234.55555555550000000000" # | 20 |  print('"{:,f}"'.format(v)) print('"{:,F}"'.format(v)) # "1,234.5555555555" # | 10 |  print('"{:_.20f}"'.format(v)) print('"{:_.20F}"'.format(v)) print('"{:_f}"'.format(v)) print('"{:_F}"'.format(v)) # ValueError: invalid format string 
Enter fullscreen mode Exit fullscreen mode
from decimal import Decimal print('"{:f} {:f}"'.format(Decimal(value='nan'), Decimal(value='inf'))) print('"{:F} {:F}"'.format(Decimal(value='nan'), Decimal(value='inf'))) # "NaN Infinity" 
Enter fullscreen mode Exit fullscreen mode

*Decimal() without str gets an improper value.

from decimal import Decimal v = Decimal(value=1234.5555555555) # | 10 | print(v) # 1234.555555555499950060038827359676361083984375 # | 42 |  print('"{:.20f}"'.format(v)) print('"{:.20F}"'.format(v)) # "1234.55555555549995006004" # | 20 |  print('"{:.15f}"'.format(v)) print('"{:.15F}"'.format(v)) # "1234.555555555499950" # | 15 |  print('"{:.10f}"'.format(v)) print('"{:.10F}"'.format(v)) # "1234.5555555555" # | 10 |  print('"{:.6f}"'.format(v)) print('"{:.6F}"'.format(v)) # "1234.555556" # | 6 |  print('"{:.2f}"'.format(v)) print('"{:.2F}"'.format(v)) # "1234.56"  print('"{:.1f}"'.format(v)) print('"{:.1F}"'.format(v)) # "1234.6"  print('"{:.0f}"'.format(v)) print('"{:.0F}"'.format(v)) # "1235"  print('"{:#.0f}"'.format(v)) print('"{:#.0F}"'.format(v)) # "1235."  print('"{:f}"'.format(v)) print('"{:F}"'.format(v)) # "1234.555555555499950060038827359676361083984375" # | 42 |  print('"{:,.20f}"'.format(v)) print('"{:,.20F}"'.format(v)) # "1,234.55555555549995006004" # | 20 |  print('"{:,f}"'.format(v)) print('"{:,F}"'.format(v)) # "1,234.555555555499950060038827359676361083984375" # | 42 |  print('"{:_.20f}"'.format(v)) print('"{:_.20F}"'.format(v)) print('"{:_f}"'.format(v)) print('"{:_F}"'.format(v)) # ValueError: invalid format string 
Enter fullscreen mode Exit fullscreen mode
from decimal import Decimal print('"{:f} {:f}"'.format(Decimal(value=float('nan')), Decimal(value=float('inf')))) print('"{:F} {:F}"'.format(Decimal(value=float('nan')), Decimal(value=float('inf')))) # "NaN Infinity" 
Enter fullscreen mode Exit fullscreen mode

Top comments (0)