Как конвертировать валюту США в строку в python

#python #string #python-2.7

#python #строка #python-2.7

Вопрос:

Я хочу преобразовать значение кортежа с запятой в строку в python. Например, ввод: 3,500.60, а вывод должен быть 3,500.6 (строковый тип)

 value=3,500.60
s=str(value)
  

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

но я хочу, как 3,500.6

Возможно ли это?

Комментарии:

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

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

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

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

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

Ответ №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(' ',''))
  

Все они дали результат 3,500.6

Комментарии:

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