if (i == 0 && i < b.Count - 1) //2/2+3+5
{
try
{
double a1 = Convert.ToDouble(a.Substring(0, b[i].index)); //2
double a2 = Convert.ToDouble(a.Substring(b[i].index + 1, b[i + 1].index - b[i].index - 1)); //2
return jisuan((a1 / a2).ToString() + a.Substring(b[i + 1].index, a.Length - b[i + 1].index));
}//1+3+5
catch { return "Error!"; }
}
if (i > 0 && i < b.Count - 1) // 2+4-6/3+4
{
try
{
double a1 = Convert.ToDouble(a.Substring(b[i - 1].index + 1, b[i].index - b[i - 1].index - 1)); //6
double a2 = Convert.ToDouble(a.Substring(b[i].index + 1, b[i + 1].index - b[i].index - 1)); //3
return jisuan(a.Substring(0, b[i - 1].index + 1) + (a1 / a2).ToString() + a.Substring(b[i + 1].index, a.Length - b[i + 1].index));
} //2+4-2+4
catch { return "Error!"; }
}
if (i == 0 && i == b.Count - 1) //24/3
{
try
{
double a1 = Convert.ToDouble(a.Substring(0, b[i].index)); //24
double a2 = Convert.ToDouble(a.Substring(b[i].index + 1, a.Length - b[i].index - 1)); //3
return (a1 / a2).ToString();
}
catch { return "Error!"; }
}
break;
}
case "+":
{
if (i > 0 && i == b.Count - 1)
{
try
{
double a1 = Convert.ToDouble(a.Substring(b[i - 1].index + 1, b[i].index - b[i - 1].index - 1));
double a2 = Convert.ToDouble(a.Substring(b[i].index + 1, a.Length - b[i].index - 1));
return jisuan(a.Substring(0, b[i - 1].index + 1) + (a1 + a2).ToString());
}
catch { return "Error!"; }
}
if (i == 0 && i < b.Count - 1)
{
try
{
double a1 = Convert.ToDouble(a.Substring(0, b[i].index));
double a2 = Convert.ToDouble(a.Substring(b[i].index + 1, b[i + 1].index - b[i].index - 1));
return jisuan((a1 + a2).ToString() + a.Substring(b[i + 1].index, a.Length - b[i + 1].index));
}
catch { return "Error!"; }
}
if (i > 0 && i < b.Count - 1)
{
try
{
double a1 = Convert.ToDouble(a.Substring(b[i - 1].index + 1, b[i].index - b[i - 1].index - 1));
double a2 = Convert.ToDouble(a.Substring(b[i].index + 1, b[i + 1].index - b[i].index - 1));
return jisuan(a.Substring(0, b[i - 1].index + 1) + (a1 + a2).ToString() + a.Substring(b[i + 1].index, a.Length - b[i + 1].index));
}
catch { return "Error!"; }
}
if (i == 0 && i == b.Count - 1)
{
try
{
double a1 = Convert.ToDouble(a.Substring(0, b[i].index));
double a2 = Convert.ToDouble(a.Substring(b[i].index + 1, a.Length - b[i].index - 1));
return (a1 + a2).ToString();
}
catch { return "Error!"; }
}
break;
}
case "-":
{
if (i > 0 && i == b.Count - 1)
{
try
{
double a1 = Convert.ToDouble(a.Substring(b[i - 1].index + 1, b[i].index - b[i - 1].index - 1));
double a2 = Convert.ToDouble(a.Substring(b[i].index + 1, a.Length - b[i].index - 1));
return jisuan(a.Substring(0, b[i - 1].index + 1) + (a1 - a2).ToString());
}
catch { return "Error!"; }
}
if (i == 0 && i < b.Count - 1)
{
try
{
double a1 = Convert.ToDouble(a.Substring(0, b[i].index));
double a2 = Convert.ToDouble(a.Substring(b[i].index + 1, b[i + 1].index - b[i].index - 1));
return jisuan((a1 - a2).ToString() + a.Substring(b[i + 1].index, a.Length - b[i + 1].index));
}
catch { return "Error!"; }
}
if (i > 0 && i < b.Count - 1)
{
try
{
double a1 = Convert.ToDouble(a.Substring(b[i - 1].index + 1, b[i].index - b[i - 1].index - 1));
double a2 = Convert.ToDouble(a.Substring(b[i].index + 1, b[i + 1].index - b[i].index - 1));
return jisuan(a.Substring(0, b[i - 1].index + 1) + (a1 - a2).ToString() + a.Substring(b[i + 1].index, a.Length - b[i + 1].index));
}
catch { return "Error!"; }
}
if (i == 0 && i == b.Count - 1)
{
try
{
double a1 = Convert.ToDouble(a.Substring(0, b[i].index));
double a2 = Convert.ToDouble(a.Substring(b[i].index + 1, a.Length - b[i].index - 1));
return (a1 - a2).ToString();
}
catch { return "Error!"; }
}
break;
}
}
}
}
}
return a;
}
}
#endregion