Saya ingin memformat angka seperti 188518982.18 menjadi £ 188.518.982,18 menggunakan Python.
Bagaimana saya bisa melakukan ini?
python
formatting
currency
RailsSon
sumber
sumber
locale
modul nilai mata uang dan properti tampilan mata uang itu.Jawaban:
Lihat modul lokal .
Ini memformat mata uang (dan tanggal).
sumber
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
dan bekerja dengan sempurna!Baru di 2.7
http://docs.python.org/dev/whatsnew/2.7.html#pep-0378
sumber
$ 123,456.78
terkadang menghasilkan . Sunting: penurunan harga mengeluarkan ruang ekstra, berpura-pura ada lebih banyak antara $ dan angkaTidak yakin mengapa itu tidak disebutkan lebih online (atau di utas ini), tetapi paket Babel (dan utilitas Django) dari orang-orang Edgewall luar biasa untuk pemformatan mata uang (dan banyak tugas i18n lainnya). Itu bagus karena tidak menderita dari keharusan untuk melakukan semuanya secara global seperti modul lokal Python inti.
Contoh yang OP berikan adalah:
sumber
locale
argumen yangformat_currency
dapat digunakan untuk mengatasi hal ini, tapi entah itu tidak ada dalam dokumen empat tahun yang lalu (ketika saya menulis komentar itu) atau saya baru saja menguji kode jawaban ini apa adanya tanpa memeriksa dokumen.Ini adalah pos kuno, tetapi saya baru saja mengimplementasikan solusi berikut ini yang:
Kode:
Keluaran:
Dan untuk poster asli, jelas, hanya beralih
$
untuk£
sumber
print(f'Value is: ${value:,.2f}'.replace('$-', '-$'))
Pengaturan lokal saya sepertinya tidak lengkap, jadi saya juga melihat melampaui jawaban SO ini dan menemukan:
http://docs.python.org/library/decimal.html#recipes
OS-independen
Hanya ingin berbagi di sini.
sumber
def moneyfmt(value, places=2, curr='', sep=',', dp='.', pos='', neg='-', trailneg='')
?Jika Anda menggunakan OSX dan belum menetapkan pengaturan modul lokal Anda, jawaban pertama ini tidak berfungsi Anda akan menerima kesalahan berikut:
Untuk mengatasinya, Anda harus menggunakan yang berikut ini:
sumber
"{:0,.2f}".format(float(your_numeric_value))
dalam Python 3 melakukan pekerjaan; itu memberikan sesuatu seperti salah satu dari baris berikut:sumber
Jika saya jadi Anda, saya akan menggunakan BABEL: http://babel.pocoo.org/en/latest/index.html
sumber
format_currency
.Oh, itu binatang yang menarik.
Saya telah menghabiskan banyak waktu untuk memperbaiki hal itu, ada tiga masalah utama yang berbeda dari lokal ke lokal: - simbol dan arah mata uang - ribuan pemisah - titik desimal
Saya sudah menulis implementasi saya sendiri yang agak ekstensif tentang ini yang merupakan bagian dari kerangka python kiwi, lihat LGPL: sumber ed di sini:
http://svn.async.com.br/cgi-bin/viewvc.cgi/kiwi/trunk/kiwi/currency.py?view=markup
Kode ini sedikit spesifik untuk Linux / Glibc, tetapi seharusnya tidak terlalu sulit untuk diadopsi ke windows atau unix lainnya.
Setelah Anda menginstalnya, Anda dapat melakukan hal berikut:
Yang kemudian akan memberi Anda:
atau
Tergantung pada lokal yang saat ini dipilih.
Poin utama dari postingan ini adalah bahwa ini akan bekerja dengan versi python yang lebih lama. locale.currency diperkenalkan dalam python 2.5.
sumber
10,50 kr
gantikr 10,50
.#cetak variabel 'Total:' dalam format yang terlihat seperti ini '9,348.237'
di mana '{: 7, .3f}' adalah jumlah spasi untuk memformat angka dalam kasus ini adalah satu juta dengan 3 angka desimal. Kemudian Anda menambahkan '.format (zum1). Zum1 adalah variabel tha yang memiliki jumlah besar untuk jumlah semua angka dalam program khusus saya. Variabel bisa berupa apa saja yang Anda putuskan untuk digunakan.
sumber
Terinspirasi oleh kode di atas: D
sumber
Saya datang untuk melihat hal yang sama dan menemukan python-money belum benar-benar menggunakannya, tetapi mungkin campuran keduanya akan baik
sumber
Sebuah lambda untuk menghitungnya di dalam fungsi, dengan bantuan dari jawaban @ Nate
lalu,
sumber
Kode python sederhana!
sumber
"$2,129.1468284147656"
,"$10,948.3742933"
,"$1,0908"
. Mengacaukan tali.