数据表里有些列是int, 有些是double。
现在要对这些列做一些统计,比如最大值、平均值之类,算法都是一样的,可以统一用double做。问题是取数据的时候,怎么做类型转换。据说应该这样:
double value;
if (dr[i] is int)
value = (double)((int)dr[i]);
else
value = (double)(dr[i]);
这个转换会在我的程序里多次出现,所以我希望行数尽量少。有没有更简捷的办法?
value = Double.Parse(dr[i].ToString());
这个好像有点怪,而且有可能exception
现在要对这些列做一些统计,比如最大值、平均值之类,算法都是一样的,可以统一用double做。问题是取数据的时候,怎么做类型转换。据说应该这样:
double value;
if (dr[i] is int)
value = (double)((int)dr[i]);
else
value = (double)(dr[i]);
这个转换会在我的程序里多次出现,所以我希望行数尽量少。有没有更简捷的办法?
value = Double.Parse(dr[i].ToString());
这个好像有点怪,而且有可能exception
{
return (o is int) ? (double)(int)o : (double)o;
}void YourProgram()
{
double value = GetValue(dr[i]);
}
谢谢applethink,不过我不大明白。刚才查了一下,implicit/explicit是修饰转换运算符的,好像起不到减少if/else或三元操作的作用。能详细说说吗?