作者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://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1482691067.A.813.html
1F:→ konkonchou: return (i==typeof(int) || i==typeof(double) ... ) 12/26 03:43
2F:推 lUlanJa: TryParse 12/26 08:36
3F:→ lUlanJa: 把value转成string 再用TryParse呢 12/26 08:38
4F:→ Litfal: 看不太懂 12/26 15:48
5F:→ Litfal: 你的theta是啥 12/26 15:48
6F:→ sa73157: 加入Microsoft.VisualBasic.dll参考 12/26 18:54
7F:→ sa73157: 就可以用Information.IsNumeric方法 12/26 18:55
8F:推 ychsutw: if (value is int) {} 01/01 20:56
谢谢大家的回答,後来发现"非数值"其实就是NaN,所以用IsNaN这个函式就能判断了
※ 编辑: siate (61.227.241.137), 01/01/2017 21:21:23