コード例 #1
0
ファイル: FreeUtil.cs プロジェクト: yangfan111/common
 private static string GetNumber(string nv)
 {
     if (StringUtil.ContainsNumber(nv))
     {
         try
         {
             double d = double.Parse(nv);
             if (d == d)
             {
                 return(d.ToString());
             }
             else
             {
                 return(d.ToString());
             }
         }
         catch (Exception)
         {
             if (!ncache.ContainsKey(nv))
             {
                 string r = null;
                 try
                 {
                     string v = FormulaUtil.GetValue(nv, fMap).ToString();
                     double d = double.Parse(v);
                     if (d == d)
                     {
                         r = d.ToString();
                     }
                     else
                     {
                         r = d.ToString();
                     }
                 }
                 catch (Exception)
                 {
                     r = nv;
                 }
                 ncache[nv] = r;
                 if (ncache.Count > 1000)
                 {
                     ncache.Remove(ncache.Keys.Iterator().Next());
                 }
             }
             return(ncache[nv]);
         }
     }
     else
     {
         return(nv);
     }
 }
コード例 #2
0
ファイル: FreeUtil.cs プロジェクト: yangfan111/common
 private static double GetDouble(string nv, IEventArgs args)
 {
     nv = ReplaceVar(nv, args);
     if (nv != null && StringUtil.ContainsNumber(nv))
     {
         try
         {
             return(double.Parse(nv));
         }
         catch (Exception)
         {
             if (!doubleCache.ContainsKey(nv))
             {
                 double r = 0d;
                 try
                 {
                     string v = FormulaUtil.GetValue(nv, fMap).ToString();
                     r = double.Parse(v);
                 }
                 catch (Exception)
                 {
                 }
                 doubleCache[nv] = r;
                 if (doubleCache.Count > 10000)
                 {
                     doubleCache.Remove(doubleCache.Keys.Iterator().Next());
                 }
             }
             return(doubleCache[nv]);
         }
     }
     else
     {
         return(0d);
     }
 }