为什么呢?

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)'

可以<!>#180; t返回$ -1.885,00?

有帮助吗?

解决方案

数字周围的括号表示它是借方(即负数),而非信用(正数),是会计中的常见惯例(我猜因为括号比前面的小减号/破折号更明显,而且它是将借记与贷方区分开来至关重要; - )。

因此,许多语言环境将该约定表达为<!>“正确的方式<!>”并不奇怪。格式化负数。如果要使用区域设置约定的某些部分(例如$符号和逗号),而不是其他部分(例如括号),则必须使用abs(yournumber)而不仅仅使用yournumber作为区域设置的输入。货币,然后,如果你的数字<!> lt; 0,做一个小的字符串操作来找到第一个数字并形成一个新的字符串,前面有一个短划线(或其他字符串操作,取决于你想要的方式来表示负数 - 例如符号<!>减去<!>“[破折号]可以在货币符号之前,或在整个字符串的右边)。

为什么你认为那些将要阅读该输出的人想要一些但不是所有的语言环境约定都适用于它呢?

其他提示

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top