zjh2785 发表于 2018-4-15 07:13

闲来没事,发一段文本转换成double的代码

本帖最后由 zjh2785 于 2018-4-15 07:29 编辑

这段代码可以转换混合型的文本到数值,例如数字+字母,数字+标点等等,从文本左边至右边起转换,直至遇见任何一个非数值字符;
+123.00(正数)返回 123;
-123.00[负数]   返回-123;
.123【小数】 返回0.123


      
      /// <summary>
      /// 截取文本中包含的数值
      /// </summary>
      /// <param name="textString">包含数值的文本, 例如+123.00(总图)、   .123[备注]</param>
      /// <returns>返回123、0.123,无效文本返回0</returns>
      public double GetValue (string textString)      {
            string str = string. Empty;
            bool tag = false;
            bool point = false;
            char [ ] split = textString. ToCharArray( );
            foreach (char c in split)
            {
                if (char. IsDigit(c))
                {
                  str += c;
                }
                else if (c == '+' || c == '-')
                {
                  if (tag == false)
                  {
                        str += c;
                        tag = true;
                  }
                  else
                  {
                        break;
                  }
                }
                else if (c == '.')
                {
                  if (point == false)
                  {
                        str += c;
                        point = true;
                  }
                  else
                  {
                        break;
                  }
                }
                else
                {
                  break;
                }
            }
            double result = 0f;
            try
            {
                result = double. Parse(str);
            }
            catch (Exception)
            {}
            return result;
      }


页: [1]
查看完整版本: 闲来没事,发一段文本转换成double的代码