寫這篇文章是因為我看到了Allen Lee的How to Parse a string to an int? [C#],很受益,也很敬佩他這麼嚴謹的態度.
他的文章裡只是提到了如何把string解析為int, 我就現學現賣了:) 寫出了三個類型(int,double,float)的轉換.小弟不才,還請大家不吝賜教!
protected void Page_Load(object sender, EventArgs e)
{
int init = 414; //試一試 :)
string str = "100000000000000000000000000000000000000000000";
Response.Write("<li>" + GetObj2Int(str, init));
Response.Write("<li>" + GetObj2Double(str, init));
Response.Write("<li>" + GetObj2Float(str, init));
}
public static float GetObj2Float(object obj, float initValue)
{//Author:Kennytian@msn.com
string s = obj.ToString();
float f = float.Epsilon; //只是初始化一個值,沒有其它意義
bool isSuccessful = float.TryParse(s, out f);
if (isSuccessful) //盡量不在判斷裡做一些運算
{
return f;
}
return initValue; //如果失敗後就返回
}
public static double GetObj2Double(object obj, double initValue)
{//Author:Kennytian@msn.com
string s = obj.ToString();
double d = double.NegativeInfinity; //初始值為-Infinity,也可以賦為0;
bool isSuccessful = double.TryParse(s, out d); //返回一個是否轉換成功的bool值
if (isSuccessful)
{
return d;
}
return initValue;
}
public static int GetObj2Int(object obj, int initValue)
{//Author:Kennytian@msn.com
string s = obj.ToString();
int i = int.MinValue; //初始值為-2147483648
bool isSuccessful = int.TryParse(s, out i);
if (isSuccessful)
{
return i; //當轉換成功為就為s的值,不再是-2147483648
}
return initValue;
}