【发布时间】:2017-12-23 01:37:26
【问题描述】:
我正在 Python 中运行一个非常耗时的后处理器,并且遇到了 FloatingPointError,而我期待的是 ZeroDivisionError。
我的代码在try except 语句中捕获了ZeroDivisionError 的可能性:
try: a = b / abs(c)
except ZeroDivisionError: a = 'divZero'
但是,我收到以下错误:
FloatingPointError: divide by zero encountered in divide
为什么会出现这个错误?
【问题讨论】:
-
b和c的值是多少? -
是的,尝试打印
c。它可能不是0,而是由于数字错误而导致的一些非常小的数字。 -
c是0.0。如果不再次运行代码,我将无法确切知道b是什么,这需要一点时间,但它是从数组中获取的浮点数(例如43.3E3/2) -
如果没有
b和c的值,我们无法重现此内容 -
比值更重要的是,请显示
b和c的类型(例如,print(type(b))显示什么?)。我强烈怀疑b和c中至少有一个是NumPy 标量而不是常规Pythonfloat。
标签: python floating-point division