Flutter 颤振中的NaN是什么,是由什么引起的?

Flutter 颤振中的NaN是什么,是由什么引起的?,flutter,nan,Flutter,Nan,当我运行一个应用程序,其中在容器上绘制了一个包裹在定位中的图标时,我得到一个错误,指出偏移量(定位的左侧)使用了NaN值。我在网上看了看,发现NaN不是数字,但我找不到它的原因。我的意思是,如果我把一个数字除以零,我会得到一个错误,说我不能把一个数字除以零,但是NaN是一个常数,对于我所理解的,如果我乘以一个数字,比如说对于一个字符串,我会得到不兼容类型的错误,而不是NaN。我并不是要为我的代码提供一个特定的答案,因为我无法提供答案,而是要提供一个更一般的解释。NaN可能是由除以一个变量引起的,

当我运行一个应用程序,其中在容器上绘制了一个包裹在定位中的图标时,我得到一个错误,指出偏移量(定位的左侧)使用了NaN值。我在网上看了看,发现NaN不是数字,但我找不到它的原因。我的意思是,如果我把一个数字除以零,我会得到一个错误,说我不能把一个数字除以零,但是NaN是一个常数,对于我所理解的,如果我乘以一个数字,比如说对于一个字符串,我会得到不兼容类型的错误,而不是NaN。我并不是要为我的代码提供一个特定的答案,因为我无法提供答案,而是要提供一个更一般的解释。

NaN可能是由除以一个变量引起的,该变量不能转换为@JoSSte所述的数字。 但正如我经验性地发现的那样,flatter在除以0时不会抛出错误,这与python中抛出ZeroDivisionError的例子相反。当一个正数和一个负数分别被零除时,颤振将被零除的输出视为无穷大或-无穷大


因此,这是有道理的,但当无穷大不能被接受为一个值时(事实并非如此),它会抛出一个错误,说明框架本身存在错误。

NaN最常见,因为您试图除以
“大象”
true
或其他无法转换为数字的东西…问题是,我从一个Random()乘以一个nextDouble和一个double值得到一个flatter表示为NaN的值。所以,到目前为止,类型没有什么奇怪的…您是否尝试将输入的输出打印到stdout以验证它是否确实生成了一个数字?我解决了我在某个点被零除的问题。发生在我身上的一个特殊情况是将
0.0
-0.0
加上一段时间,然后双转到
nan
,我不知道为什么,但添加一个条件以防止value.abs添加<0.01。