😽

【Python3】f文字列で小数点以下任意桁で切り捨て、桁が足りない時は0埋め

に公開

やりたいこと

float型数値の整形

例1)小数点以下が任意桁数より多い時は切り捨て

1.123456 → 1.123

例2)桁が足りない時はゼロ埋め

1.1 → 1.100

この桁の切り捨てゼロ埋めをif文で分けずに1つのf文字列で処理したい。あと、桁数は任意の数でやりたい。

f文字列の使い方

小数点以下の切り捨て

n = 1.123456
print(f'{n:.3f}') # 1.123

ゼロ埋め

n = 1
print(f'{n:03}') # 001

小数点以下の方でゼロ埋めしたいので.の右側でゼロ埋め処理を記述すれば良さそう。

フォーマット部分に変数を使いたい時は?

{}を入れ子にすればよい

n = 1
m = int(input())
print(f'{n:0{m}}') # 001

任意桁数でゼロ埋めできた。

任意桁切り捨て・ゼロ埋め両方できるf文字列

n = float(input()) # 整形したい小数
m = int(input()) # 小数点以下の桁数
print(f'{n:.0{m}f}')

余談:ゼロ埋めではなく空白埋めしたい

右寄せ・中央揃え・左寄せを使う

n = 1
print(f'{n:>5}') # 空白空白空白空白空白1
  • > 右寄せ
  • < 左寄せ
  • ^ 中央揃え

空白以外で埋めることもできる

n = 1
print(f'{n:+>5}') # +++++1

Discussion