
这几天遇到的一个grpc报错,总是时不时出现,过一段时间又会自动好。
这是在传输一个int列表的时候出现的错误,传输的列表我检查了,是没问题的,里面所有的元素也都是int型的,但是偶尔会报出635587.1不是int型的错误。问题是,我的列表里没有635587.1呀,是有635587,但是没有635587.1。
搞不清楚这个.1是哪里来的,今天和大前天是635587,昨天又变成了其他数字,但是报错还是这个报错。
日志是客户端打印的,服务端是python,客户端是Java
请问一下,这个报错出现的原因?怎么解决?以及出现的.1是什么(代码是接手别人的,但是可以肯定,使用grpc传输的列表没有.1)?
10月31日再编辑:再强调一下,python的输出没问题,我已经打印验证过了,出错的635587也特意看了,确实是635587,没有.1,类型是int型。而且整个输出没有635587.1,所有数据都是int型的,没有小数点的
怎么看怎么像是python输出的带有.1,没有其他原因了。。。。
这个错误是因为python中int()不能将带有小数点的字符串转化为整数类型,检查一下python代码的 int()转化操作
举个例子:
print(int("2.0")) 会报错
可以在int()里加入float(),先强制转换为浮点型,再转换为整数型:
print(int(float("2.0")))
python输出的带有.1