1

为什么?

C:\path\>manage.py shell
Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.    

>>> import locale
>>> locale.getlocale()
('Spanish_Colombia', '1252')
>>> locale.currency( 1885, grouping=True )
'$ 1.885,00'
>>> locale.currency( -1885, grouping=True )
'($ 1.885,00)'

不能退回 -1.885,00 美元?

4

2 回答 2

2

在您的语言环境中,用括号括起来的数字表示它是一个负数。在控制面板/区域和语言设置中检查这个,Python 可能会从那里获取它。

于 2009-10-24T20:29:32.870 回答
2

数字周围的括号表示它是借方(即负数),而不是贷方(正数),是会计中的常见约定(我猜是因为括号比前面的小减号/破折号更明显,区分是至关重要的从贷方中借记;-)。

因此,许多语言环境将该约定表示为格式化负数的“正确方法”也就不足为奇了。如果你想使用你的语言环境约定的某些部分,比如 $ 符号和逗号,而不是其他的,比如括号,你必须使用 abs(yournumber) 而不仅仅是 yournumber 作为语言环境的输入。货币,然后,如果您的数字 < 0,请进行一些字符串操作以找到第一个数字并形成一个新字符串,并在其前面带有破折号(或其他字符串操作,具体取决于您表示负数的所需方式 - 例如符号“减号”[破折号]可以放在货币符号之前,或者在整个字符串的右侧)。

顺便说一句,为什么您认为要阅读该输出的人希望将一些但不是所有的语言环境约定应用于它?

于 2009-10-24T22:40:24.173 回答