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

貸方 (プラス) ではなく、借方 (マイナス) であることを示すための数字の周りの括弧は、会計における一般的な慣例です (括弧は、前の小さなマイナス/ダッシュよりも目立ちやすいためだと思います。クレジットからの借方;-)。

したがって、多くのロケールがその規則を負の数をフォーマットする「適切な方法」として表現していることは驚くべきことではありません。$ 記号やコンマなどのロケールの規則の一部を使用し、括弧などの他の部分を使用したくない場合は、locale への入力として yournumber だけでなく abs(yournumber) を使用する必要があります。次に、yournumber < 0 の場合、少し文字列操作を行って最初の桁を見つけ、その前にダッシュを付けた新しい文字列を形成します (または、負の金額を表現する方法に応じて、他の文字列操作を行います。たとえば、記号 "マイナス" [ダッシュ] は、通貨記号の前、または文字列全体の右側に置くことができます)。

ところで、その出力を読んでいる人が、ロケールの規則のすべてではなく一部を適用したいと思うのはなぜだと思いますか?

于 2009-10-24T22:40:24.173 に答える
2

お住まいの地域では、数値を括弧で囲むと、それが負の数値であることを示します。コントロールパネル/地域と言語の設定でこれを確認してください.Pythonはおそらくそこからそれを拾っています.

于 2009-10-24T20:29:32.870 に答える