c#计算器不能处理异加数
本文关键字:处理 计算器 不能 | 更新日期: 2023-09-27 18:03:02
我正在用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);
好的。您要做的是在一行中两次解析文本框中的string
。两次得到的结果都是一样的。它不像你写的那样循环。最重要的是,你没有提取表达式。为了让你的生活更容易,我建议使用计算器。. NET第三方库。它解析数学表达式:
然后是NCalc(就像Calculator一样). NET,这个库使用起来非常简单):
http://ncalc.codeplex.com/您还可以利用Microsoft Script Control,如以下答案所示:
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());