小编Dan*_*erp的帖子

为什么python round(np.float16(np.pi),5)返回无穷大?错误,限制或预期?

我有一个Python 3函数将四舍五入到6位数字(逻辑处理各种精度级别)。当与许多(可能是所有)numpy.float16值一起传递时,它将生成乘法溢出警告并返回无穷大。

问题标题中或下面显示的简短代码段说明了该行为。

解决方法很简单,只需先转换为较大的浮点数即可,但是我很好奇这种行为是否值得期待。

import numpy as np
x = np.float16(3.14)
x = round(x, 5)
if np.isinf(x):
    print("you've made an infinity through rounding....", 1, x)
else:
    print('just x: ', x)
Run Code Online (Sandbox Code Playgroud)

我希望舍入会影响精度,但决不会造成溢出或将值更改为无穷大。

python floating-point numpy overflow rounding

5
推荐指数
1
解决办法
100
查看次数

标签 统计

floating-point ×1

numpy ×1

overflow ×1

python ×1

rounding ×1