Python格式负面货币

时间:2015-05-15 11:39:43

标签: python formatting currency negative-number

到目前为止,我还没有找到任何解决负面货币格式的问题,这让我发疯了。

from decimal import *
import re
import sys
import os
import locale


locale.setlocale( locale.LC_ALL, 'English_United States.1252' )
# cBalance is a running balance of type Decimal

fBalance = locale.currency( cBalance, grouping=True )
print cBalance, fBalance

带负数的结果:

-496.06 ($496.06)

我需要一个减号 NOT 括号

如何摆脱括号并获得减号?

2 个答案:

答案 0 :(得分:2)

看起来你可以使用_override_localeconv dict(有点hackish)。

import locale

cBalance = -496.06

locale.setlocale( locale.LC_ALL, 'English_United States.1252')
locale._override_localeconv = {'n_sign_posn':1}

fBalance = locale.currency(cBalance, grouping=True)
print cBalance, fBalance

或者您可以使用string formatting

答案 1 :(得分:0)

这可能不是您所寻求的全面方法,但如果您使用区域设置en_US.UTF-8,则可以使用负号-采用确定性方法:

import locale
locale.setlocale(locale.LC_ALL, b'en_US.UTF-8')

amount = locale.currency(-350, grouping=True)
print(amount) # -$350.00

amount = locale.currency(-350, grouping=True).replace('$', '')
print(amount) # -350.00