#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. Это очень экстремальный способ, позволяющий вам продолжать использовать кортежи в вашем коде, а не фактические числовые типы.