Visual Studio Web Developer (Asp C#) でフォーム ベースの電卓を作成する必要があります。クリックしたボタンの値を表示するテキスト ボックスがあります (+、-、/、* を含む)...
可能であれば、そのテキストボックスの文字列値を計算したい...
編集:JSには eval(stringholdername); を使用してこれを行う非常に簡単な方法があることを知っています。しかし、ASP C# ではこれに相当するものを見つけることができないようです
Visual Studio Web Developer (Asp C#) でフォーム ベースの電卓を作成する必要があります。クリックしたボタンの値を表示するテキスト ボックスがあります (+、-、/、* を含む)...
可能であれば、そのテキストボックスの文字列値を計算したい...
編集:JSには eval(stringholdername); を使用してこれを行う非常に簡単な方法があることを知っています。しかし、ASP C# ではこれに相当するものを見つけることができないようです
次のような単純な再帰的方法を使用できます。
public int Calculate(string expression)
{
int result = 0;
string[] expressions = expression.Split('+');
if (expressions.Length > 1)
{
result = 0;
foreach (string expr in expressions)
result += Calculate(expr);
return result;
}
expressions = expression.Split('-');
if (expressions.Length > 1)
{
result = Calculate(expressions[0]);
for (int i = 1; i < expressions.Length; i++)
result -= Calculate(expressions[i]);
return result;
}
expressions = expression.Split('*');
if (expressions.Length > 1)
{
result = 1;
foreach (string expr in expressions)
result *= Calculate(expr);
return result;
}
expressions = expression.Split('/');
if (expressions.Length > 1)
{
result = Calculate(expressions[0]);
for (int i = 1; i < expressions.Length; i++)
result /= Calculate(expressions[i]);
return result;
}
if (!int.TryParse(expression, out result))
throw new ArgumentException("Expression was not nummeric", "expression");
return result;
}
非常にシンプルで、( と ) と負の数をサポートせず、+、-、*、/ のみをサポートします。
次のように使用します。
int result = Calculate("20*10+200/100");
あなたの探求を頑張ってください。
NCalcを調べてください。これはオープン ソースの数式評価ツールです。