【问题标题】:How to convert a US currency to string in python如何在python中将美国货币转换为字符串
【发布时间】:2019-08-30 19:25:55
【问题描述】:

我想用逗号将元组值转换为 python 中的字符串。 Ex Input: 3,500.60 and output should be 3,500.6(string type)

value=3,500.60
s=str(value)

这会返回 (3, 500.6)

但我想要 3,500.6

有可能吗?

【问题讨论】:

  • 你正在解析一个元组,它不是一个浮点数。去掉逗号
  • Python 中没有“带逗号的浮点值”这样的东西。 3,500.6 是一个元组,由整数3 和浮点数500.6 组成。
  • 3,500.60 不是浮点数。它是数字 3 和 500.60 的元组。您不能将逗号用作数字文字的千位分隔符。不过,如果需要,您可以使用下划线:3_500.6 等于 3500.6
  • 当你在做value=3,500.60时,你的值等于一个包含3500.6元素的元组。
  • 如果这个值应该代表货币,我强烈建议不要使用浮点数来存储它。浮点数不能准确地表示小数点后有两个值的许多数字。例如,浮点数 3500.6 在内部存储为 3500.59999999999990905052982270717620849609375,如果您稍后尝试使用它进行算术运算,这种不精确性可能会导致错误。考虑将您的货币存储为整数美分,或者使用decimal.Decimal

标签: python string python-2.7


【解决方案1】:

我问了一个单行表达式,它给出了这样的输出。无论如何,这个解决了我的问题。

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

更新

这就是我想要的: 方法一:

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

方法二:

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

全部给出结果3,500.6

【讨论】:

  • 这是一种非常极端的方式,允许您在代码中继续使用元组而不是实际的数字类型。
猜你喜欢
  • 2012-01-15
  • 1970-01-01
  • 2022-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多