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);

c#计算器不能处理异加数

好的。您要做的是在一行中两次解析文本框中的string。两次得到的结果都是一样的。它不像你写的那样循环。最重要的是,你没有提取表达式。为了让你的生活更容易,我建议使用计算器。. NET第三方库。它解析数学表达式:

http://weblogs.asp.net/pwelter34/archive/2007/05/05/calculator-net-calculator-that-evaluates-math-expressions.aspx

然后是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());