现在的位置: 首页 > 综合 > 正文

[原]如何把object解析为int,double,float?

2012年12月26日 ⁄ 综合 ⁄ 共 1407字 ⁄ 字号 评论关闭
    写这篇文章是因为我看到了Allen LeeHow 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;
  }

抱歉!评论已关闭.