在numpy数组使用时发现了浮点数转整数可能会产生错误的问题,目前采用引入误差方式解决。
1、问题代码:
e = 0
points = np.array([[100.10, 40.20],
[100.30, 40.60],
[100.20, 40.70]])
lons = points[:, 0] - 100.0 + e
lats = points[:, 1] - 40.0 + e
lons = (lons/0.1)
lats = (lats/0.1)
lons = lons.astype(int)
lats = lats.astype(int)
print lons
print lats
预期结果为:[1, 3, 2] [2, 6, 7] 实际结果为:[0, 2, 2] [2, 6, 7]
通过调试发现:100.10实际数据内容为100.09999999999999
在进行减法运算之后,数据实际内容进一步发生变化:
取整数之前数据实际值: