Как вычислить тригонометрическую функцию из другой тригонометрической функции?
Я делаю калькулятор. Вот мой метод по замене синуса в строке на его результат. Он работает, может вычислить sin((35+10)*2), но не может вычислить sin(sin((35+10)*2)).
static string SinReplace(string Line)
{
int SinIndexOf = Line.IndexOf("sin(");
while (SinIndexOf != -1)
{
string Sin = "";
int OpenBracketCount = 0;
int ClosebracketCount = 0;
for (int i = SinIndexOf; i < Line.Length; i++)
{
Sin += Line[i];
if (Line[i] == '(')
OpenBracketCount++;
if (Line[i] == ')')
ClosebracketCount++;
if (OpenBracketCount == ClosebracketCount && OpenBracketCount != 0 && ClosebracketCount != 0)
break;
}
Sin = Sin.Substring(4, Sin.Length - 5);
double Result = Math.Sin((Math.PI / 180) * Convert.ToDouble(new DataTable().Compute(Sin, "")));
Line = Line.Remove(SinIndexOf, Sin.Length + 5);
Line = Line.Insert(SinIndexOf, Result.ToString());
SinIndexOf = Line.IndexOf("sin(");
}
return Line;
}