【问题标题】:Converting a string to a numerical value [duplicate]将字符串转换为数值[重复]
【发布时间】:2014-09-08 01:08:07
【问题描述】:

如果有一种将字符串转换为数字的简单方法,我会徘徊,知道字符串以数字开头但可以包含非数字字符。 例如:my_str = "36.12minuts"

我记得 Visual Basic 中有一个直接进行转换的函数:

my_str = "36.12minuts"
val(my_str) => 36.12

Python 怎么样?

【问题讨论】:

  • 我记得函数 int(.)、float(.) 和 int(float(.)) 不起作用,除非字符串中只有一个数值。

标签: python string type-conversion


【解决方案1】:
def digitsndots(text):                                          
    if text in ["1","2","3","4","5","6","7","8","9","0","."]:   
        return True                                             
    else:                                                       
        return False                                            
num = float(filter(digitsndots, "36.12minuts"))
print num

使用此选项时,请确保您的字符串之间没有数字,例如“1.a.34.c”(@Taha 提供)

【讨论】:

  • 这个想法不错,但应该小心,因为它可能会出现行为不端。例如:num("36.12minuts84") = num("36.1284") = 36.1284num("36.12.84minuts") = num("36.12.84") 引发异常。将所有这些情况都考虑在内将是一项工作。一定有更简单的方法。
  • 如果我们使用在第一个非数字字符或第二个十进制字符上分割字符串的算法,它可能会起作用。这可以做到,但我认为还有更复杂的方法。
猜你喜欢
  • 2017-12-15
  • 2013-11-04
  • 2019-10-27
  • 2016-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多