代码之家  ›  专栏  ›  技术社区  ›  Jasonca1

python十进制上下文输出[重复]

  •  3
  • Jasonca1  · 技术社区  · 8 年前

    我想用特定的格式输出特定的十进制变量,我的理解是您可以使用decimal类的上下文来实现这一点。我该怎么做呢?

     x = decimal.Decimal(2000.0)
    

    现在我想把它打印成 $2,000.00 我该如何在上下文中这样做呢?

    3 回复  |  直到 8 年前
        1
  •  1
  •   Potion    8 年前
    val = 2000
    print("${:.2f}".format(float(val)))   # This outputs $2000.00 (no comma)
    

    但要添加逗号,只需将其添加到冒号和小数之间,如下所示:

    print("${:,.2f}".format(float(val)))   # This outputs $2,000.00 (with comma)
    money = 65434562338.89
    print("${:,.2f}".format(float(money))) # Outputs: $65,434,562,338.89
    

    这个 :.2f 对输出进行格式化,以便在以下位置仅显示两位小数: :.3f 将显示3个小数,如 $2000.000 等等

        2
  •  1
  •   donkopotamus    8 年前

    尝试:

    >>> "${:,.2f}".format(decimal.Decimal(2000))
    '$2,000.00'
    
    >>> "${:,.2f}".format(decimal.Decimal("2000.987"))
    '$2,000.99'
    
    >>> "${:,.2f}".format(decimal.Decimal("1000000.1"))
    '$1,000,000.10'
    
    >>> "${:,.2f}".format(decimal.Decimal("123456789123456789123456789.12345"))
    '$123,456,789,123,456,789,123,456,789.12'
    
        3
  •  0
  •   marc_s MisterSmith    8 年前

    尝试 locale 单元

    示例代码:

    import locale
    
    x = 2000.00
    locale.setlocale( locale.LC_ALL, '' )
    locale.currency( x )
    locale.currency( x, grouping=True )
    

    输出:

    '$2,000.00'
    

    参考: Currency formatting in Python

    文档: https://docs.python.org/2/library/locale.html

    推荐文章