😽
【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