Как преобразовать валюту США в строку в python

Я хочу передать значение кортежа с запятой в строку в python. Пример ввода: 3500,60, а вывод должен быть 3500,6 (строковый тип)

value=3,500.60
s=str(value)

это возвращает (3, 500,6)

но я хочу как 3500,6

Является ли это возможным?

Вы анализируете кортеж, это не поплавок. убери запятую

Sayse 09.04.2019 15:18

В Python нет такой вещи, как «значение с плавающей запятой с запятой». 3,500.6 — это кортеж, состоящий из целого числа 3 и числа с плавающей запятой 500.6.

jasonharper 09.04.2019 15:19

3500,60 не является числом с плавающей запятой. Это кортеж из чисел 3 и 500,60. Вы не можете использовать запятую в качестве разделителя тысяч для числовых литералов. Однако вы можете использовать подчеркивание, если хотите: 3_500.6 равно 3500.6.

Kevin 09.04.2019 15:19

на самом деле это ввод валюты. Я не должен этого делать @sayse

Vanjith 09.04.2019 15:20

когда вы делаете value=3,500.60, вы делаете значение равным кортежу, в котором есть элементы 3 и 500.6.

Kaiwen Chen 09.04.2019 15:20

Хорошо, тогда как я могу конвертировать валюту в строку простым способом?

Vanjith 09.04.2019 15:21

Если это значение должно представлять валюту, я настоятельно рекомендую нет использовать для его хранения число с плавающей запятой. Плавающие числа не могут точно представлять многие числа с двумя значениями после десятичной точки. Например, число с плавающей запятой 3500.6 внутренне хранится как 3500.59999999999990905052982270717620849609375, и эта неточность может привести к ошибкам позже, если вы попытаетесь выполнить с ним арифметические действия. Рассмотрите возможность хранения вашей валюты в виде целого числа центов или, возможно, используйте decimal.Decimal.

Kevin 09.04.2019 15:22

Вы неправильно написали свой номер? Должно ли это быть value = 3_500.60 согласно PEP 515?

quamrana 09.04.2019 15:24
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
10
77
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я задал однострочное выражение, которое дает такой вывод. Во всяком случае, это решило мою проблему.

value=3,500.60
b=''
for i in str(value):
    if not i in (' ','(',')'):
        b+=i
print(b)

ОБНОВИТЬ

Это то, что я хочу: Способ 1:

print(str(map(lambda x:x if x not in ('(',')') else '',[i for i in value])).strip('[]').replace(' ',''))

Способ 2:

print(str(value).strip('()').replace(' ',''))

Все они дали результат 3500,6

Это очень экстремальный способ позволить вам продолжать использовать кортежи в вашем коде, а не фактические числовые типы.

Sayse 09.04.2019 17:44

Другие вопросы по теме