我正在用C#开发一个计算器,除了我添加数字这个事实,只有加数是相同的数字(例如9 + 9 = 18,6 + 9)这个事实我已经相当远了= 12)。所以我很困惑。有人会帮帮我吗?
private void button5_Click(object sender, EventArgs e)
{
b = false;
number = decimal.Parse(richTextBox1.Text);
richTextBox1.Text = number + " + ";
number2 = decimal.Parse(richTextBox1.Text);
addReady = true;
}
private void button17_Click(object sender, EventArgs e)
{
if (addReady == true)
{
answer = number + number2;
richTextBox1.Text = Convert.ToString(answer);
b = true;
}
}
另外,当我把它放入时,我的正/负按钮突然开始出现故障,将所有内容转换为0.这是怎么回事?
decimal neg;
neg = number * 2;
number = number - neg;
richTextBox1.Text = Convert.ToString(number);
答案 0 :(得分:3)
好的。您要做的是从行中的文本框中解析string
两次。所以,两次你都会获得完全相同的数字。它不会以你编写它的方式循环。最重要的是,你没有提取表达式。为了让您的生活更轻松,我建议使用Calculator.NET第三方库。它解析数学表达式:
然后是NCalc(就像Calculator.NET一样,这个库的使用简单得令人难以置信):
您也可以利用Microsoft脚本控制,如以下答案所示:
https://stackoverflow.com/a/392355/2006048
万一链接不起作用我会在这里复制代码进行演示(所有信用都归原始海报):
MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
sc.Language = "VBScript";
string expression = "1 + 2 * 7";
object result = sc.Eval(expression);
MessageBox.Show(result.ToString());