将浮点数转换为美元和美分

2024-05-16 12:51:12 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,我试过这个帖子(包括其他的):Currency formatting in Python。它对我的变量没有影响。我最好的猜测是,这是因为我正在使用Python3,而这是Python2的代码。(除非我忽略了什么,因为我是Python新手)。

我想将一个浮点数(如1234.5)转换为一个字符串(如“$1234.50”)。我该怎么做呢?

为了以防万一,这里是我编译的代码,但没有影响我的变量:

money = float(1234.5)
locale.setlocale(locale.LC_ALL, '')
locale.currency(money, grouping=True)

也不成功:

money = float(1234.5)
print(money) #output is 1234.5
'${:,.2f}'.format(money)
print(money) #output is 1234.5

Tags: 代码inoutputisfloatlocalecurrency帖子
3条回答

以@JustinBarber为例,并注意@eric.frederich的注释,如果您想格式化像-$1,000.00这样的负值,而不是$-1,000.00,并且不想使用locale

def as_currency(amount):
    if amount >= 0:
        return '${:,.2f}'.format(amount)
    else:
        return '-${:,.2f}'.format(-amount)

在Python3中,可以使用:

import locale
locale.setlocale( locale.LC_ALL, 'English_United States.1252' )
locale.currency( 1234.50, grouping = True )

输出

'$1,234.50'

在Python3.x和2.7中,您只需执行以下操作:

>>> '${:,.2f}'.format(1234.5)
'$1,234.50'

:,添加逗号作为千位分隔符,并且.2f将字符串的结尾限制为两个小数位(或添加足够的零以获得两个小数位,视情况而定)。

相关问题 更多 >