对于numpy,我试图理解在精度损失小于或等于0.001的情况下,可以从float64降到float32的最大值是什么.
由于我在网上找不到简单的解释,我很快想出了这段代码来测试:
result = {}
for j in range(1,1000):
for i in range (1, 1_000_000):
num = i + j/1000
x=np.array([num],dtype=np.float32)
y=np.array([num],dtype=np.float64)
if abs(x[0]-y[0]) > 0.001:
result[j] = i
break
根据结果,似乎没有任何正值<;32768可以安全地从float64向下浇铸到float32,精度损失可以接受(给定标准<;=0.001)
对吗?
谢谢