闲来没事,发一段文本转换成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]