为什么numpy 1.14发16 65504到65500

2024-10-01 17:28:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Windows上用numpy1.14.2运行以下代码

print(np.array(65504, dtype=np.float16))

我得到结果65500.0。你知道吗

但是我运行finfo(np.float16)得到以下输出:

Machine parameters for float16
---------------------------------------------------------------
precision =   3   resolution = 1.00040e-03
machep =    -10   eps =        9.76562e-04
negep =     -11   epsneg =     4.88281e-04
minexp =    -14   tiny =       6.10352e-05
maxexp =     16   max =        6.55040e+04
nexp =        5   min =        -max
---------------------------------------------------------------

显示最大值为65504。我用NUMPY1.13运行相同的代码,它打印65504.0。你知道吗

numpy 1.14缺少什么?你知道吗


Tags: 代码forwindowsnpmachinearraymaxprecision
1条回答
网友
1楼 · 发布于 2024-10-01 17:28:28

在numpy1.14中,一种浮点字符串化算法has been changed,用于打印仍然舍入到原始值的最短表示,就像常规Python浮点一样。你知道吗

这里的“最短”是用有效数字表示的,因此65500.0被认为比65504.0短。因为np.float16('65500.0')产生相同的值,65500.0是被打印的表示。你知道吗

相关问题 更多 >

    热门问题