2015-04-02 67 views
0

我有套接字在java和python之间以字符串格式发送数据。 python客户端接收字符串中的浮点数字,例如data_in = "[[email protected]",然后尝试将它们转换为value = int(float(data_in[1:]))的整数。不过python返回错误ValueError: could not convert string to float: [email protected]。怎样才能获得java浮点值在Python中的整数?谢谢!解析一个Java float的字符串到python int

+0

'@'符号是什么绊倒转换。数字中的第一个“F”部分,还是可以'[F @'被安全忽略? – MattDMo 2015-04-02 17:52:31

+1

听起来像Java数组到字符串的转换是错误的;你应该使用'Arrays.toString(float [])',而不是'float []。toString()'。你得到的字符串看起来毫无意义。 – 2015-04-02 17:58:46

回答

0

如果data_in的前三个字符与十六进制数字串不相关,则您的切片应为data_in[3:]。这将忽略[[email protected]字符,并将其转换为5cf0ac6e

然而,拨打float()是没有必要的。相反,使用:

value = int(data_in[3:], 16) 

因为任何浮点信息都会随着转换为整数而丢失。因为您要从基数16(十六进制)转换,所以16参数为int()是必需的。