【发布时间】:2015-05-26 09:59:22
【问题描述】:
当进入检查以下代码的值“NaN”被识别为双重解析的正确值并进入 if 和 nto else 时,我感到很惊讶...你知道为什么会这样以及如何更好地保护我的代码避免这种情况。只有当数字可以转换为双精度时,值才应该去。
If Double.TryParse(array(3), doubleitem) Then
array(3) = doubleitem
Else
array(3) = Nothing
End If
【问题讨论】:
-
当 array(3) 的值为“NaN”时,它进入了行:array(3) = doubleitem
-
出于特定原因,我只需要一个我无法弄清楚 Double.Try 解析将某些字符串识别为 Parse 的 cooreect 值的原因。如何避免这种情况?我认为 Double.TryParse 就足够了,但似乎还不够。
-
在我的情况下不是这样。数组为字符串类型
-
试试 && doubleitem Double.NaN ?
-
我明白了,如果我使用
InvariantCulture:Double.TryParse("NaN",NumberStyles.None, CultureInfo.InvariantCulture, doubleitem),它会返回 true。在我的文化中(de-de)`doubleitem.ToString返回"n. def."。
标签: vb.net