Flutter 中的 NaN 是什么以及由什么引起的?

Fab*_*zio 2 nan flutter

当我运行一个应用程序,其中在容器上绘制了包裹在 Positioned 中的图标时,我收到一条错误消息,指出偏移量(Positioned 的left)使用 NaN 值。我上网查了一下,发现NaN的意思是Not a Number,但是我找不到是什么原因造成的。我的意思是,如果我将一个数字除以零,我会得到一个错误,说我不能将一个数字除以零,但根据我的理解,NaN 是一个常量,如果我乘以一个数字,我们可以说对于一个字符串我' d 得到不兼容类型错误,而不是 NaN。我并不是要求特定于我的代码的答案,因为我无法提供它,而是要求更一般的解释。

Fab*_*zio 5

NaN 可能是由于除以一个不能像 @JoSSte 所说的那样转换为数字的变量引起的。但根据我的经验发现,Flutter 在除以 0 时不会抛出错误,这与 Python 不同,例如抛出 ZeroDivisionError 。当正数和负数分别除以零时,Flutter 将除以零的输出视为无穷大或负无穷大。

所以这是有道理的,但在无法接受无穷大作为值的情况下(因为它不是),它会抛出一个错误,指出框架本身存在错误。