我在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)进行转换。但是,我在第一部分用小数点分隔字符串的那部分。任何帮助将不胜感激!
答案 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