Chcę sformatować liczbę taką jak 188518982,18 do 188 518 982,18 GBP za pomocą Pythona.
W jaki sposób mogę to zrobić?
python
formatting
currency
RailsSon
źródło
źródło
locale
użycia wartości waluty przez moduł i właściwości wyświetlania tej waluty.Odpowiedzi:
Zobacz moduł locale .
Dotyczy to formatowania waluty (i daty).
źródło
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
i działało idealnie!Nowość w wersji 2.7.0
http://docs.python.org/dev/whatsnew/2.7.html#pep-0378
źródło
$ 123,456.78
czasami skutkuje . Edycja:Nie do końca jestem pewien, dlaczego nie wspomniano o tym więcej w Internecie (lub w tym wątku), ale pakiet Babel (i narzędzia Django) od facetów z Edgewall jest świetny do formatowania walut (i wielu innych zadań i18n). To fajne, ponieważ nie cierpi z powodu konieczności robienia wszystkiego globalnie, jak rdzeń modułu lokalnego dla Pythona.
Przykład podany przez PO wyglądałby po prostu:
źródło
locale
argument doformat_currency
może zostać użyty do rozwiązania tego problemu, ale albo tego nie było w dokumencie cztery lata temu (kiedy pisałem ten komentarz), albo właśnie przetestowałem kod tej odpowiedzi bez sprawdzania dokumentu.To jest starożytny post, ale właśnie wdrożyłem następujące rozwiązanie, które:
Kod:
Wynik:
A jeśli chodzi o oryginalny plakat, po prostu przełącz się
$
na£
źródło
print(f'Value is: ${value:,.2f}'.replace('$-', '-$'))
Moje ustawienia regionalne wydawały się niekompletne, więc również spojrzałem poza tę TAK odpowiedź i znalazłem:
http://docs.python.org/library/decimal.html#recipes
Niezależny od systemu operacyjnego
Chciałem się tu tylko podzielić.
źródło
def moneyfmt(value, places=2, curr='', sep=',', dp='.', pos='', neg='-', trailneg='')
?Jeśli używasz OSX i nie ustawiłeś jeszcze swojego modułu ustawień regionalnych, to pierwsza odpowiedź nie zadziała, pojawi się następujący błąd:
Aby temu zaradzić, będziesz musiał wykonać następujące czynności:
źródło
"{:0,.2f}".format(float(your_numeric_value))
w Pythonie 3 spełnia swoje zadanie; wyświetla coś podobnego do jednej z następujących linii:źródło
Na twoim miejscu użyłbym BABEL: http://babel.pocoo.org/en/latest/index.html
źródło
format_currency
.Och, to interesująca bestia.
Spędziłem dużo czasu, aby to naprawić, istnieją trzy główne kwestie, które różnią się w zależności od lokalizacji: - symbol waluty i kierunek - separator tysięcy - przecinek dziesiętny
Napisałem własną, dość obszerną implementację tego, która jest częścią frameworka kiwi Python, sprawdź źródło LGPL: ed tutaj:
http://svn.async.com.br/cgi-bin/viewvc.cgi/kiwi/trunk/kiwi/currency.py?view=markup
Kod jest nieco specyficzny dla Linuksa / Glibc, ale nie powinien być zbyt trudny do zaadaptowania do Windows lub innych uniksów.
Po zainstalowaniu możesz wykonać następujące czynności:
Który następnie da ci:
lub
W zależności od aktualnie wybranej lokalizacji.
Głównym punktem, który ten post ma nad innymi, jest to, że będzie działać ze starszymi wersjami Pythona. locale.currency zostało wprowadzone w Pythonie 2.5.
źródło
10,50 kr
Zamiast tego byłaby jedna korzyśćkr 10,50
.#printing zmiennej „Total:” w formacie, który wygląda następująco: „9,348,237”
gdzie „{: 7, .3f}” to liczba spacji do sformatowania liczby w tym przypadku to milion z 3 miejscami po przecinku. Następnie dodajesz '.format (zum1). Zum1 to zmienna, która ma dużą liczbę będącą sumą wszystkich liczb w moim konkretnym programie. Zmienna może być wszystkim, czego zdecydujesz się użyć.
źródło
Zainspirowany powyższym kodem: D
źródło
Przyszedłem spojrzeć na to samo i stwierdziłem, że pieniądze z Pythona jeszcze go nie używają, ale może połączenie tych dwóch byłoby dobre
źródło
Lambda do obliczania jej wewnątrz funkcji, z pomocą odpowiedzi @ Nate'a
i wtedy,
źródło
Prosty kod w Pythonie!
źródło
"$2,129.1468284147656"
,"$10,948.3742933"
,"$1,0908"
. Niszczy sznurek.