【问题标题】:Parse a string of Java float to python int将一串Java浮点数解析为python int
【发布时间】:2015-06-07 18:48:39
【问题描述】:

我有套接字在 java 和 python 之间以字符串格式发送数据。 python客户端接收字符串中的浮点数,例如data_in = "[F@5cf0ac6e",然后尝试使用value = int(float(data_in[1:])) 将它们转换为整数。但是 python 返回错误ValueError: could not convert string to float: F@5cf0ac6e。如何在python中将java浮点值转换为整数?谢谢!

【问题讨论】:

  • @ 符号是阻碍转换的原因。第一个F 是数字的一部分,还是可以安全地忽略[F@
  • 听起来Java数组到字符串的转换是错误的;你应该使用Arrays.toString(float[]),而不是float[].toString()。你得到的字符串看起来毫无意义。

标签: java python sockets floating-point int


【解决方案1】:

如果data_in 的前三个字符与十六进制数字字符串无关,则您的切片应为data_in[3:]。这将忽略[F@ 字符,只转换5cf0ac6e

但是,不需要调用float()。相反,使用:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-30
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    • 2011-09-18
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    相关资源
    最近更新 更多