小数点付きの数値を先行ゼロでフォーマットしたい。
これ
>>> '3.3'.zfill(5)
003.3
すべての桁、さらには小数点も考慮します。全体だけを考慮するPythonの関数はありますか?
小数点以下5桁以下の単純な数値をフォーマットするだけで済みます。また、を使用%5f
すると、先行ゼロではなく末尾が考慮されるようです。
小数点付きの数値を先行ゼロでフォーマットしたい。
これ
>>> '3.3'.zfill(5)
003.3
すべての桁、さらには小数点も考慮します。全体だけを考慮するPythonの関数はありますか?
小数点以下5桁以下の単純な数値をフォーマットするだけで済みます。また、を使用%5f
すると、先行ゼロではなく末尾が考慮されるようです。
それはあなたが探しているものですか?
>>> "%07.1f" % 2.11
'00002.1'
だからあなたのコメントによると、私はこれを思い付くことができます(もうそれほどエレガントではありませんが):
>>> fmt = lambda x : "%04d" % x + str(x%1)[1:]
>>> fmt(3.1)
0003.1
>>> fmt(3.158)
0003.158
新しいスタイルのフォーマットが好きです。
loop = 2
pause = 2
print 'Begin Loop {0}, {1:06.2f} Seconds Pause'.format(loop, pause)
>>>Begin Loop 2, 0002.1 Seconds Pause
{1:06.2f}の場合:
このような?
>>> '%#05.1f' % 3.3
'003.3'
あなたの例のように文字列から始めて、あなたはあなたが望むことをするためにこのような小さな関数を書くことができます:
def zpad(val, n):
bits = val.split('.')
return "%s.%s" % (bits[0].zfill(n), bits[1])
>>> zpad('3.3', 5)
'00003.3'
print('{0:07.3f}'.format(12.34))
これは、小数点以下3桁を含む合計7文字になります。「012.340」