gpt4 book ai didi

python - 为什么 numpy 1.14 将 float16 65504 舍入到 65500

转载 作者:行者123 更新时间:2023-12-02 08:40:52 24 4
gpt4 key购买 nike

我在 Windows 上使用 numpy 1.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。我使用 numpy 1.13 运行相同的代码,它打印 65504.0。

numpy 1.14 缺少什么?

最佳答案

在 NumPy 1.14 中,浮点字符串化算法 has been changed打印仍然舍入到原始值的最短表示形式,就像常规的 Python float 一样。

这里的“最短”是指有效数字,因此 65500.0 被认为比 65504.0 短。由于 np.float16('65500.0') 生成相同的值,因此 65500.0 是打印的表示形式。

关于python - 为什么 numpy 1.14 将 float16 65504 舍入到 65500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51167004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com