在python中与Locale无关的字符串到float转换

时间:2012-04-24 09:37:57

标签: python locale string-conversion

我需要将字符串转换为float,但可以有不同的输入字符串格式,例如'1234,5''1234.5''1 234,5''1,234.5'或其他。我无法更改区域设置小数指针或千位分隔符,因为我可能不知道我将提前获得什么数据。

是否有一种方法或方法或库可以解析并转换为浮动这种特定于语言环境的值,而不知道使用了哪个语言环境?

P.S。对于日期相同的问题,是否存在任何解决方案?

TIA。

1 个答案:

答案 0 :(得分:0)

您可以假设哪个字符是千位分隔符,哪个是小数点。但是,有一种情况您无法确切知道该做什么:

  • 查找.,的最后一个字符。如果它出现不止一次,则该数字没有小数点,该字符是千位分隔符
  • 如果字符串恰好包含其中一个,则最后一个是小数点
  • 如果字符串只包含一个点/逗号,那么您很幸运:123.456123,456可能是数字123456123.456。但是,使用123.45之类的数字 - 即潜在千位分隔符之后的数字位数不是三的倍数 - 您可以假设它是小数点。