到目前为止,我还没有找到任何解决负面货币格式的问题,这让我发疯了。
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 括号
如何摆脱括号并获得减号?
答案 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