This one will return a doube
Code:private double GetNumericValue(string sVal) { int iFirst, iEnd; char[] aNumbers = "1234567890.-".ToCharArray(); string sRet = null; bool bMinus = false, bPoint=false; iFirst = sVal.IndexOfAny(aNumbers); iEnd = sVal.LastIndexOfAny(aNumbers); if (iEnd < 0) return 0; string subStr = sVal.Substring(iFirst, iEnd - iFirst + 1); iEnd = subStr.Length - 1; char cMinus = Convert.ToChar("-"); char cPoint = Convert.ToChar("."); while (subStr.Length > 0) { if (subStr[0].Equals(cMinus)) bMinus = !bMinus; else if (subStr[0].Equals(cPoint)) { if (!bPoint) { bPoint = true; sRet += subStr[0]; } } else sRet += subStr[0]; subStr = subStr.Substring(1, subStr.Length-1); if (subStr.Length <= 0) break; iFirst = subStr.IndexOfAny(aNumbers); subStr = subStr.Substring(iFirst, subStr.Length - iFirst); } if (bMinus) sRet = "-" + sRet; return double.Parse(sRet); }




Reply With Quote