作者siate ()
看板C_Sharp
標題[問題] 判斷是否為數值的方法
時間Mon Dec 26 02:37:45 2016
我想要判斷由一個算式算出的結果是否為數字
因為如果算出的結果是虛數 會顯示"非數值"的字樣
我想要的功能是:如果是非數值 程式就不再執行下去
因為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
→ konkonchou: return (i==typeof(int) || i==typeof(double) ... ) 12/26 03:43
推 lUlanJa: TryParse 12/26 08:36
→ lUlanJa: 把value轉成string 再用TryParse呢 12/26 08:38
→ Litfal: 看不太懂 12/26 15:48
→ Litfal: 你的theta是啥 12/26 15:48
→ sa73157: 加入Microsoft.VisualBasic.dll參考 12/26 18:54
→ sa73157: 就可以用Information.IsNumeric方法 12/26 18:55
推 ychsutw: if (value is int) {} 01/01 20:56
謝謝大家的回答,後來發現"非數值"其實就是NaN,所以用IsNaN這個函式就能判斷了
※ 編輯: siate (61.227.241.137), 01/01/2017 21:21:23