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


        写这篇文章是因为我看到了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;
      }

  • 相关阅读:
    【NOI2000T4】单词查找树-trie树
    【POJ1698】Alice's Chance-二分图多重匹配
    【POJ1698】Alice's Chance-二分图多重匹配
    【POJ3159】Candies-差分约束系统
    【POJ3159】Candies-差分约束系统
    【POJ2914】Minimum Cut-无向图的全局最小割
    【POJ2914】Minimum Cut-无向图的全局最小割
    【HDU3555】Bomb-数位DP入门题
    【HDU3555】Bomb-数位DP入门题
    codevs 2018 反病毒软件
  • 原文地址:https://www.cnblogs.com/Kennytian/p/1031076.html
Copyright © 2020-2023  润新知