在c#语言中的数字有两个特性要了解.例如:任何数除以0所得的结果是无穷大,不在int long 和decimal类型的范围内.所以计算(一个数除以0会出错),但是在double和float类型中有一个可以表示无穷大的特殊值(infinity无穷大).这个规则的唯一例外的表达式是0.0/0.0,通常如果0除以任何数结果都是0,但是任何数除以0结果是无穷大.这样就会陷入矛盾的境地,针对这种情况,c#提供了另一个值NaN,(not a number).所以如果计算表达式0.0/0.0,则结果为NaN,…
这乍一听是个很简单的事,但突然搞起来还真有点无从下手的感觉. 首先当然是通过GetType()方法反射获取其类型信息,然后对其进行分析,但是类型信息Type中并没有简单地给出这么一个属性进行判断. 老外给出的方法是: public static bool IsNumeric(this Type dataType) { if (dataType == null) throw new ArgumentNullException("dataType"); return (dataType =…