我有一个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)
我希望舍入会影响精度,但决不会造成溢出或将值更改为无穷大。