2012-11-19 31 views
0

這是場景! (簡體)爲什麼要分配一個double值來加倍?導致NaN

double val1 = 0.0; 
double? val2 = val1; 

爲什麼val2會導致NaN?

+2

我認爲問題在「簡化」工作中丟失了。您需要添加足夠的原始代碼才能重現該場景。 –

+0

也許我的問題太簡單了。在哪種情況下會發生這種情況。從邏輯上說,它永遠不會!但它呢?實際的代碼完全符合列出的內容,除了這些值是傳遞參數值的2個類的一部分。 –

+1

我的猜測是0/0問題。 N/0會給出'Infinity'(n!= 0) –

回答

1

簡單地說:它不會,它不會。

將非NaN double分配給double?的結果是具有非NaN值的double?;在這種情況下0.0

+0

是的,我同意......但我的情況,雖然比示例稍微複雜一點,但基本上歸結爲這一點。非常感謝您的快速回答! –

+2

@JandeJager不,在「基本」上丟失了一些東西。你需要發佈*實際上*重現你所看到的東西。您的原始代碼和您發佈的代碼之間的差異是問題所在。 –

+0

我會嘗試複製這個,而不必發佈20000行代碼......這可能是問題所在。只是想知道是否有任何明顯的原因發生這種情況。但你會因爲勇敢地回答一個愚蠢的問題而得到'剔'! TX! –

相關問題