DEV Community

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

Posted on • Edited on

String in Python (20)

Buy Me a Coffee

*Memos:

:[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 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)