Snabb hjälp med c# miniräknare
Hej,
Jag har gjort en miniräknare som första projekt på programmeringen i skolan och den ska vara klar imorgon så jag behöver snabb hjälp av någon som kan se varför det blir ett konstigt tal som jag inte förstår var det kommer ifrån när man trycker på tex 5+5 eller liknande och sen summerar det.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace alkylator
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int clear = 1; decimal result, mresult = 0; string op;
int Clear(int cl)
{
switch (cl)
{
case 1:
{
label1.Text = "";
} break;
case 2:
{
label1.Text = ""; label2.Text = ""; op = "";
} break;
case 3:
{
label1.Text = ""; label2.Text = label2.Text.Remove(label2.Text.IndexOf('r'));
} break;
case 4:
{
label1.Text = ""; label2.Text = label2.Text.Remove(label2.Text.IndexOf('s'));
} break;
case 5:
{
label1.Text = ""; label2.Text = label2.Text.Remove(label2.Text.LastIndexOf(' ') + 1);
} break;
}
return 0;
}
decimal eval(string op)
{
clear = 1;
switch (op)
{
case "+": result = result + Convert.ToDecimal(label1.Text); break;
case "-": result = result - Convert.ToDecimal(label1.Text); break;
case "/": result = result / Convert.ToDecimal(label1.Text); break;
case "*": result = result * Convert.ToDecimal(label1.Text); break;
case "Mod": result = result % Convert.ToDecimal(label1.Text); break;
}
return result;
}
private void button10_Click(object sender, EventArgs e)
{
clear = Clear(clear);
if (label1.Text.Length < 28)
label1.Text = label1.Text + "0";
}
private void button1_Click(object sender, EventArgs e)
{
clear = Clear(clear);
if (label1.Text.Length < 28)
label1.Text = label1.Text + "1";
}
private void button2_Click(object sender, EventArgs e)
{
clear = Clear(clear);
if (label1.Text.Length < 28)
label1.Text = label1.Text + "2";
}
private void button3_Click(object sender, EventArgs e)
{
clear = Clear(clear);
if (label1.Text.Length < 28)
label1.Text = label1.Text + "3";
}
private void button4_Click(object sender, EventArgs e)
{
clear = Clear(clear);
if (label1.Text.Length < 28)
label1.Text = label1.Text + "4";
}
private void button5_Click(object sender, EventArgs e)
{
clear = Clear(clear);
if (label1.Text.Length < 28)
label1.Text = label1.Text + "5";
}
private void button6_Click(object sender, EventArgs e)
{
clear = Clear(clear);
if (label1.Text.Length < 28)
label1.Text = label1.Text + "6";
}
private void button7_Click(object sender, EventArgs e)
{
clear = Clear(clear);
if (label1.Text.Length < 28)
label1.Text = label1.Text + "7";
}
private void button8_Click(object sender, EventArgs e)
{
clear = Clear(clear);
if (label1.Text.Length < 28)
label1.Text = label1.Text + "8";
}
private void button9_Click(object sender, EventArgs e)
{
clear = Clear(clear);
if (label1.Text.Length < 28)
label1.Text = label1.Text + "9";
}
private void button11_Click(object sender, EventArgs e)
{
label1.Text = label1.Text + ".";
}
private void button12_Click(object sender, EventArgs e)
{
if (clear == 3 || clear == 5 || clear == 5)
label2.Text = label2.Text + " + ";
else label2.Text = label2.Text + label1.Text + " + ";
label1.Text = eval(op).ToString();
op = "+";
}
private void button13_Click(object sender, EventArgs e)
{
if (clear == 3 || clear == 5 || clear == 5)
label2.Text = label2.Text + " - ";
else label2.Text = label2.Text + label1.Text + " - ";
label1.Text = eval(op).ToString();
op = "-";
}
private void button14_Click(object sender, EventArgs e)
{
if (clear == 3 || clear == 5 || clear == 5)
label2.Text = label2.Text + " / ";
else label2.Text = label2.Text + label1.Text + " / ";
label1.Text = eval(op).ToString();
op = "/";
}
private void button15_Click(object sender, EventArgs e)
{
if (clear == 3 || clear == 5 || clear == 5)
label2.Text = label2.Text + " * ";
else label2.Text = label2.Text + label1.Text + " * ";
label1.Text = eval(op).ToString();
op = "*";
}
private void button19_Click(object sender, EventArgs e)
{
if (clear == 3 || clear == 5 || clear == 5)
label2.Text = label2.Text + " Mod ";
else label2.Text = label2.Text + label1.Text + " Mod ";
label1.Text = eval(op).ToString();
op = "Mod";
}
private void button22_Click(object sender, EventArgs e)
{
if (label2.Text.Contains("reciproc"))
{
label2.Text = label2.Text.Insert(label2.Text.IndexOf('r'), "reciproc("); label2.Text = label2.Text.Insert(label2.Text.IndexOf(')'), ")");
}
else label2.Text = label2.Text + "reciproc(" + label1.Text + ")";
label1.Text = (1 / Convert.ToDecimal(label1.Text)).ToString(); clear = 3;
}
private void button18_Click(object sender, EventArgs e)
{
if (label2.Text.Contains("sqrt"))
{
label2.Text = label2.Text.Insert(label2.Text.IndexOf('s'), "sqrt("); label2.Text = label2.Text.Insert(label2.Text.IndexOf(')'), ")");
}
else label2.Text = label2.Text + "sqrt(" + label1.Text + ")";
label1.Text = Math.Sqrt(Convert.ToDouble(label1.Text)).ToString(); clear = 4;
}
private void button17_Click(object sender, EventArgs e)
{
label1.Text = (result * Convert.ToDecimal(label1.Text) / 100).ToString();
label2.Text = label2.Text + label1.Text;
}
private void button23_Click(object sender, EventArgs e)
{
if (label1.Text.Contains('-'))
{
label1.Text = label1.Text.Remove(label1.Text.IndexOf('-'), 1);
}
else label1.Text = "-" + label1.Text;
}
private void button16_Click(object sender, EventArgs e)
{
if (clear != 3 && clear != 4 && clear != 5)
label2.Text = label2.Text + label1.Text;
label1.Text = eval(op).ToString(); clear = 2;
}
private void button20_Click(object sender, EventArgs e)
{
Clear(2); clear = 1; label1.Text = "0";
}
private void button21_Click(object sender, EventArgs e)
{
Clear(1); clear = 1; label1.Text = "0";
}
private void button26_Click(object sender, EventArgs e)
{
mresult = Convert.ToDecimal(label1.Text); clear = 1;
}
private void button27_Click(object sender, EventArgs e)
{
label1.Text = mresult.ToString(); clear = 1;
}
private void button25_Click(object sender, EventArgs e)
{
mresult = mresult + Convert.ToDecimal(label1.Text); clear = 1;
}
private void button24_Click(object sender, EventArgs e)
{
mresult = mresult - Convert.ToDecimal(label1.Text); clear = 1;
}
private void button28_Click(object sender, EventArgs e)
{
mresult = 0; clear = 1;
}
}
}
Tack på förhand
CPU:Intel Core I7 2600K (Socket 1155) MOBO:Asus P8P67 Deluxe GPU:Asus gtx 780 ti RAM:Kingston HyperX 2400 MHz 8GB (Dual channel) SSD:Force 3 120GB, OCZ Revodrive x2 HDD:Samsung Spinpoint F3 1TB Chassi:Corsair 750D PSU:Corsair Tx650 v2Ljud:Pro-Ject HeadBox II Hörlurar: Sennheiser hd600+ATH-M50 Högtalare: Dali Ikon 2 Mikrofon: Samson go mic Mus: Logitech G700 Matta: steelseries Qck+ Skärmar: en Asus Ve247h x3| citera mig för svar.