【问题标题】:Why would assigning a double value to double? cause a NaN为什么要将双精度值分配给双精度值?导致 NaN
【发布时间】:2012-11-07 03:31:21
【问题描述】:

这里是场景! (简体)

double val1 = 0.0;
double? val2 = val1;

为什么 val2 会导致 NaN?

【问题讨论】:

  • 我认为问题在“简化”工作中已经丢失。您需要添加足够多的原始代码来重现该场景。
  • 也许我的问题太简单了。如果有的话,在什么情况下会发生这种情况。从逻辑上讲,它不应该!但确实如此????实际代码完全按照所列内容执行,除了这些值是传递参数值的 2 个类的一部分。
  • 我猜这是一个 0/​​0 问题。 N/0 将给出Infinity(n!=0)
  • 您需要提供一个完整的代码示例,实际上演示了这个问题。我们完全有能力自己编写两个赋值语句,正如@Marc 指出的那样,结果不是您描述的结果。

标签: c# casting nan


【解决方案1】:

简单地说:它不会也不会。

将非NaN double 分配给double? 的结果是具有非NaN 值的double?;在这种情况下0.0

【讨论】:

  • 是的,我同意...但是我的场景,虽然比示例稍微复杂一点,但基本上可以归结为这一点。无论如何感谢您的快速回答!
  • @JandeJager 不,“基本上”中丢失了一些东西。您需要发布确实重现您所见内容的内容。您的原始代码和您发布的代码之间的差异是问题所在。
  • 我会尝试复制它而无需发布 20000 行代码......这可能是问题所在。只是想看看是否有任何明显的原因导致这种情况发生。但是你会因为勇敢地回答一个愚蠢的问题而得到“打勾”!发送!
  • @Jan 寻找部门。零除以零是获得 NaN 的最简单方法
  • 谢谢大家。是的,问题是“除以零”!
猜你喜欢
  • 1970-01-01
  • 2012-11-03
  • 2014-07-05
  • 2016-07-15
  • 1970-01-01
  • 2014-08-11
  • 2013-07-07
  • 2019-07-14
  • 1970-01-01
相关资源
最近更新 更多