DotNet的一個奇怪問題:IsNumeric

昨天發現一個bug,在我自己的機(vista)不會死,其他電腦,任何系統都會出現問題。
話說以下代碼應該很合理,也符合邏輯:
  1. If IsNumeric(xml.SelectSingleNode("//itemlist/pointer/x").InnerText) Then
  2.        poniterX= CInt(xml.SelectSingleNode("//itemlist/pointer/x").InnerText)
  3. End If

但導致bug 的就是上面這段代碼的 pointerX賦值這句:
提示錯誤是 arithmetic error overflow (something like that)
(實際數據內的數字沒可能超過1萬)
msgbox一看,發現xml.SelectSingleNode("//itemlist/pointer/x").InnerText的值是"NaN"...Not a Number....
但IsNumeric 卻是True...是否有點自相矛盾?
剛剛再一輪測試,

  1. IsNumeric ("NaN")     False
  2. IsNumeric(xml.SelectSingleNode("//itemlist/pointer/x").InnerText)       True
  3. IsNumeric(xml.SelectSingleNode("//itemlist/pointer/x").InnerText.ToString())   False


奇怪了。。。
.InnerText的Type根本就是String...
還硬要再轉一次?...



評論: 0 | 引用: 0 | 查看次數: 1941
發表評論
暱 稱:
密 碼: 遊客發言不需要密碼.
驗證碼:  
內 容:
選 項:
雖然發表評論不用註冊,但是為了保護您的發言權,建議您註冊賬號.
字數限制 10000 字 | UBB代碼 開啟 | [img]標籤 開啟