Я хочу отформатировать число, например, 188518982,18 в £ 188,518,982.18, используя Python.
Как я могу это сделать?
python
formatting
currency
RailsSon
источник
источник
locale
модулем значения валюты и свойств отображения этой валюты.Ответы:
Смотрите модуль локали .
Это делает форматирование валюты (и даты).
источник
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
и это работало отлично!Новое в 2.7
http://docs.python.org/dev/whatsnew/2.7.html#pep-0378
источник
$ 123,456.78
иногда приводит к тому, что. Изменить: уценка убирает лишние пробелы, притвориться, что есть больше между $ и числамиНе совсем понятно, почему он не упоминается более онлайн (или в этой ветке), но пакет Babel (и утилиты Django) от ребят из Edgewall хорош для форматирования валюты (и множества других задач i18n). Это приятно, потому что он не страдает от необходимости делать все глобально, как основной языковой модуль Python.
Пример, приведенный OP, будет просто:
источник
locale
аргумент, которыйformat_currency
можно использовать для решения этой проблемы, но либо этого не было в документе четыре года назад (когда я писал этот комментарий), либо я просто протестировал код этого ответа как есть, не проверяя документ.Это древний пост, но я только что реализовал следующее решение, которое:
Код:
Вывод:
И для оригинального плаката, очевидно, просто переключитесь
$
на£
источник
print(f'Value is: ${value:,.2f}'.replace('$-', '-$'))
Мои настройки локали казались неполными, поэтому я слишком посмотрел за пределы этого ответа SO и обнаружил:
http://docs.python.org/library/decimal.html#recipes
ОС-независимый
Просто хотел поделиться здесь.
источник
def moneyfmt(value, places=2, curr='', sep=',', dp='.', pos='', neg='-', trailneg='')
?Если вы используете OSX и еще не установили настройки модуля локали, этот первый ответ не будет работать, вы получите следующую ошибку:
Чтобы исправить это, вы должны будете использовать следующее:
источник
"{:0,.2f}".format(float(your_numeric_value))
в Python 3 делает свою работу; он выдает что-то вроде одной из следующих строк:источник
На вашем месте я бы использовал BABEL: http://babel.pocoo.org/en/latest/index.html
источник
format_currency
.О, это интересный зверь.
Я потратил много времени на то, чтобы понять это правильно, есть три основных вопроса, которые различаются в разных локалях: - символ и направление валюты - разделитель тысяч - десятичная точка
Я написал свою довольно обширную реализацию этого, которая является частью платформы Python kiwi, посмотрите источник LGPL: ed здесь:
http://svn.async.com.br/cgi-bin/viewvc.cgi/kiwi/trunk/kiwi/currency.py?view=markup
Код немного специфичен для Linux / Glibc, но не должен быть слишком сложным для адаптации к windows или другим unixes.
После того, как вы установили это, вы можете сделать следующее:
Который затем даст вам:
или
В зависимости от текущей выбранной локали.
Главное, что этот пост имеет над другим, - то, что он будет работать со старыми версиями python. locale.currency был представлен в python 2.5.
источник
10,50 kr
вместоkr 10,50
.# печать переменной 'Total:' в формате, который выглядит следующим образом '9,348.237'
где '{: 7, .3f}' - количество пробелов для форматирования числа в этом случае - миллион с 3 десятичными точками. Затем вы добавляете '.format (zum1). Zum1 - это переменная, которая имеет большое число для суммы всех чисел в моей конкретной программе. Переменная может быть любой, которую вы решите использовать.
источник
Вдохновленный кодом выше: D
источник
Я пришел посмотреть на то же самое и обнаружил, что Python-Money еще не использовал его, но, возможно, сочетание двух было бы хорошо
источник
Лямбда для вычисления внутри функции с помощью ответа @ Nate
а потом,
источник
Простой код на Python!
источник
"$2,129.1468284147656"
,"$10,948.3742933"
,"$1,0908"
. Искажает строку.