在Python中将带小数的字符串部分转换为Int

时间:2019-04-30 18:02:17

标签: python string type-conversion int

我在python中有一个完整的字符串。我想用小数点隔离数字的一部分,并将其转换为整数。我已经搜索并尝试了很多方法,包括数组但没有骰子。

#msg.payload is a string of 1:3.45
s = msg.payload
print(msg.payload)

if (s[0] == "1"):
    print("Distance from Anchor 1 received")
    d1 = arr.array((s[2], ".", s[4], s[5]))
    d1converted = int(d1)
    print(d1)

我想从字符串“ 1:3.45”中分离出“ 3.45”,然后将“ 3.45”转换为整数。我知道一旦您将'3.45'作为字符串,就可以简单地执行int(3.45)进行转换。但是,我在第一部分用小数点分隔字符串的那部分。任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:2)

如果给定的字符串为“ 1:3.45”,则可以使用python的本机.split()方法在分号处分割字符串,如下所示...

string = "1:3.45"
split_string = string.split(":")  # split_string is ["1", "3.45"]
num = split_string[1]

然后如您所说,您可以使用int(float(num))进行整数舍入,或者将round(float(num))进行整数舍入,以防您想舍入并且后面的字符串为“ 1:3.55”

答案 1 :(得分:0)

由“:”分隔,它返回一个数组,转换为浮点,转换为int:

int(float("1:3.45".split(':')[1]))

答案 2 :(得分:0)

如果输入字符串的格式为'int1:int2.int3',则可以先用:分割它们,然后取第二部分,再用.分割,如下所示:

s = '1:3.45'
int1 = int(s.split(':')[0])
int2 = int(s.split(':')[1].split('.')[0])
int3 = int(s.split(':')[1].split('.')[1])

输出

int1 = 1
int2 = 3
int3 = 45