【问题标题】:Convert string real brazilian to float [duplicate]将字符串real brazilian转换为浮点数[重复]
【发布时间】:2017-05-09 05:53:48
【问题描述】:

我有一个字符串(“45.000,00”)中包含汽车价格的列表,我想将此值转换为 python 中的浮点数。

看起来像这样:字符串中的 45,000.00 我想要这样:45.000.00 in float

【问题讨论】:

  • 这不是重复的,字符串格式与已经回答的问题不同。你可以这样做:你需要分隔小数部分并删除.,然后转换为浮点数。例如: value, decimal = '45.000,00'.split(',') as_float = float(value.replace('.','')) + float('0.'+ decimal)
  • @ihhcarus 阅读了第二个答案,该答案显示了如何正确使用语言环境:stackoverflow.com/a/6633912/3001761。此外,OP 显示了三种不同的格式(其中一种没有什么意义),因为它们应该是相同的数字,所以并不完全清楚输入和输出应该是什么。另见例如stackoverflow.com/q/13362121/3001761;字符串修饰可能不是解决这个问题的最佳方法。
  • @jonrsharpe 我明白了,我想直接找到正确的答案并跳过它。这肯定会有所帮助。
  • @ihhcarus accepted != correct!

标签: python python-2.7


【解决方案1】:

在运行float之前删除“,”字符。

float("45,000.00".replace(",", ""))

编辑 - 误读。您想删除所有 '.',然后将 ',' 替换为 '.'。

float("45.000,00".replace(".", "").replace(",", "."))

然而,这有点硬编码和讨厌 - 更好的解决方案是使用一些语言环境库来处理值。

【讨论】:

  • 这是不正确的。您使用. 作为小数点分隔符,OP 使用,,因为它是 BRL 货币格式。
猜你喜欢
  • 1970-01-01
  • 2013-10-06
  • 2011-11-25
  • 1970-01-01
  • 1970-01-01
  • 2016-01-30
  • 1970-01-01
  • 1970-01-01
  • 2019-11-21
相关资源
最近更新 更多