为什么呢?
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?
答案 0 :(得分:2)
在您的语言环境中,用括号括起数字表示它是负数。在控制面板/区域和语言设置中检查一下,Python可能会从那里拿起它。
答案 1 :(得分:2)
数字周围的括号表示它是借方(即负数),而非信用(正数),是会计中的常见惯例(我猜因为括号比前面的小减号/破折号更明显,而且它是将借记与贷方区分开来至关重要; - )。
因此,许多语言环境将该约定表达为格式化负数的“正确方法”并不奇怪。如果要使用区域设置约定的某些部分(例如$符号和逗号),而不是其他部分(例如括号),则必须使用abs(yournumber)而不是仅使用yournumber作为区域设置的输入。货币,那么,如果你的数字< 0,做一个小字符串操作来找到第一个数字并形成一个新的字符串,前面有一个短划线(或其他字符串操作,取决于你想要的方式来表示负数 - 例如标志“减去”[破折号]可以在货币符号之前,或在整个字符串的右边)。
为什么你认为那些将要阅读该输出的人想要一些但不是所有的语言环境约定都适用于它呢?