4

Pythonで、一度に複数のフォーマットを実行するにはどうすればよいですか?

したがって、数値に小数点以下の桁数を持たず、千の区切り記号を付けたいと思います。

num = 80000.00

80,000にしたい

私はこれらの2つのことを別々に行うことができることを知っていますが、どのようにそれらを組み合わせるのでしょうか。

"{:,}".format(num) # this will give me the thousands separator
"{0:.0f}".format(num) # this will give me only two decimal places

それで、これらを一緒に組み合わせることが可能ですか?

4

1 に答える 1

11

2つのフォーマット文字列を組み合わせることができます。コロンの後にコンマが最初に表示されます。

>>> "{:,.0f}".format(80000.0)
'80,000'

単一の値のみをフォーマットする場合format()は、メソッドの代わりにfree関数を使用することもできることに注意してください。str.format()

>>> format(80000.0, ",.0f")
'80,000'

編集,千の区切り記号を含めることはPython 2.7で導入されたため、上記の変換はPython2.6では機能しません。そのバージョンでは、独自の文字列フォーマットをロールする必要があります。いくつかのアドホックコード:

def format_with_commas(x):
    s = format(x, ".0f")
    j = len(s) % 3
    if j:
         groups = [s[:j]]
    else:
         groups = []
    groups.extend(s[i:i + 3] for i in range(j, len(s), 3))
    return ",".join(groups)
于 2012-08-01T16:23:04.583 に答える