numpy:将大型float32转换为int32时结果错误

时间:2018-08-26 12:13:01

标签: numpy casting floating-point int32

我有一个np.float32类型的numpy数组(实际上没有小数部分),我希望它只能转换为整数部分(2143289300),但是下面的结果是不同的(2143289344),你知道为什么吗?我想这与溢出有关,但是在numpy中将float32转换为int32或int64的正确方法是什么?我尝试了np.trunc,但结果仍然是float32。

t = np.array([2143289300.0],dtype=np.float32)
print(int(t))
print(t.astype(np.int32))
print(t.astype(np.int64))
t2 = np.trunc(t)
print(t2)
print(t2.dtype)

2143289344
[2143289344]
[2143289344]
[2.1432893e+09]
float32

0 个答案:

没有答案