[問題] 判斷是否為數值的方法

看板C_Sharp (C#)作者時間8年前 (2016/12/26 02:37), 8年前編輯推噓2(206)
留言8則, 5人參與, 最新討論串1/1
我想要判斷由一個算式算出的結果是否為數字 因為如果算出的結果是虛數 會顯示"非數值"的字樣 我想要的功能是:如果是非數值 程式就不再執行下去 因為C#沒有IsNumeric的函式 查遍了網路 大多是推薦TryParse的方法 但那是傳入String 不是我要的 我要判斷的就是我算出來的結果 所以我根本還不知道會傳入數字還是字串("非數值") 有找到一個比較符合我需求的程式碼 但執行後就停住了 感覺就是被卡在這段程式碼裡面 但我也不知道要怎麼改... 或是有其他的好方法嗎QQ private static bool IsNumeric(object value) { try { int i = Convert.ToInt32(value.ToString()); return true; } catch (FormatException) { return false; } } 主程式內執行的是 bool temp = IsNumeric(theta); (theta就是算出的結果,但此時還不知是數字還是非數值,所以要判斷它的型態) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.238.198.64 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1482691067.A.813.html

12/26 03:43, , 1F
return (i==typeof(int) || i==typeof(double) ... )
12/26 03:43, 1F

12/26 08:36, , 2F
TryParse
12/26 08:36, 2F

12/26 08:38, , 3F
把value轉成string 再用TryParse呢
12/26 08:38, 3F

12/26 15:48, , 4F
看不太懂
12/26 15:48, 4F

12/26 15:48, , 5F
你的theta是啥
12/26 15:48, 5F

12/26 18:54, , 6F
加入Microsoft.VisualBasic.dll參考
12/26 18:54, 6F

12/26 18:55, , 7F
就可以用Information.IsNumeric方法
12/26 18:55, 7F

01/01 20:56, , 8F
if (value is int) {}
01/01 20:56, 8F
謝謝大家的回答,後來發現"非數值"其實就是NaN,所以用IsNaN這個函式就能判斷了 ※ 編輯: siate (61.227.241.137), 01/01/2017 21:21:23
文章代碼(AID): #1OO17xWJ (C_Sharp)
文章代碼(AID): #1OO17xWJ (C_Sharp)