将 float 转换为 int 并在舍入的情况下引发异常

Mic*_*ael 3 python floating-point numpy

所以例如我有:

a = np.array(...)
a[idx / 3] = 5
Run Code Online (Sandbox Code Playgroud)

idx / 3将是 a float,即使它在该程序中始终具有整数值。这将引发VisibleDeprecationWarning或 较新的 Python 版本已不再支持。

是否有内置函数可以将浮点数转换为整数,并且如果输入值不是整数,则可以引发异常?或者正确的方法是什么?

我知道这也可能会导致一些关于整数“有多接近”的问题,这就是为什么我问而不只是相信floor/ ceil

Joh*_*nck 5

明确:

assert (idx % 3) == 0, "idx must be divisible by 3"
a[idx // 3] = 5
Run Code Online (Sandbox Code Playgroud)