---
title: "Hjälp med min kalkylator!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/191113-hjälp-med-min-kalkylator"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Gramas19"
published: "2013-01-31T15:19:33.000Z"
updated: "2013-02-12T20:00:50.000Z"
replies: 2
views: 1175
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/191113-hjälp-med-min-kalkylator"
---

# Hjälp med min kalkylator!

## #1 — Gramas19, 2013-01-31T15:19Z

Hej, jag har gjort en egen liten kalkylator i C# windows form application, det mesta funkar som det ska men det är ett litet problem och en sak jag skulle vilja lägga till i den som inte fungerar.

Problemet är att jag vill kunna räkna restdivision på den också.. alltså % Men när jag testar så funkar det inte (ska visa i koden längre ner) Andra problemet är om jag ska ta t.ex 5 \* 2 + 3 så blir svaret 10? Vet inte varför därför om jag tar 10 + 10 + 10 så blir svaret 30. Vill att den ska räkna 5 \* 2 (10) + 3 som är 13. Heller inte att den tar 2 + 3 och sen 5 \* 5 för det blir fel. Ska visa koden och så får någon hjälpa mig med vad jag har gjort för fel :)

här är en bild på min kalkylator: <http://www.webforum.nu/attachment.php?attachmentid=23533&stc=1&d=1359645532>

här nere är koden:

```
namespace Calculator
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        bool plusButton = false; // detta är för plus (funkar)
        bool minusButton = false; // detta är för minus (funkar)
        bool gangerButton = false; //detta är för gånger (funkar)
        bool divideButton = false; //detta för division (funkar)
        bool restDivision = false; //detta är för restdivisionen (FUNKAR INTE!)

        private void btnOne_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = txtDisplay.Text + btnOne.Text;
        }

        private void btnTwo_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = txtDisplay.Text + btnTwo.Text;
        }

        private void btnThree_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = txtDisplay.Text + btnThree.Text;
        }

        private void btnFour_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = txtDisplay.Text + btnFour.Text;
        }

        private void btnFive_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = txtDisplay.Text + btnFive.Text;
        }

        private void btnSix_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = txtDisplay.Text + btnSix.Text;
        }

        private void btnSeven_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = txtDisplay.Text + btnSeven.Text;
        }

        private void btnEight_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = txtDisplay.Text + btnEight.Text;
        }

        private void btnNine_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = txtDisplay.Text + btnNine.Text;
        }

        private void btnZero_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = txtDisplay.Text + btnZero.Text;
        }

        private void btnClear_Click(object sender, EventArgs e)
        {
            txtDisplay.Clear();
        }

        double total1 = 0;
        double total2 = 0;
        private void btnPlus_Click(object sender, EventArgs e)
        {
            total1 = total1 + double.Parse(txtDisplay.Text);
            txtDisplay.Clear();

            plusButton = true;
            minusButton = false;
            gangerButton = false;
            divideButton = false;
            restDivision = false;

        }

        private void btnEquals_Click(object sender, EventArgs e)
        {
            if (plusButton == true)
            {
                total2 = total1 + double.Parse(txtDisplay.Text);
            }
            else if (minusButton == true)
            {
                total2 = total1 - double.Parse(txtDisplay.Text);
            }
            else if (divideButton == true)
            {
                total2 = total1 / double.Parse(txtDisplay.Text);
            }
            else if (gangerButton == true)
            {
                total2 = total1 * double.Parse(txtDisplay.Text);
            }
            else if (restDivision == true)
            {
                total2 = total1 % double.Parse(txtDisplay.Text); //här ska den ta % istället för t.ex + eller * osv så att det blir restdivision. Resten funkar
            }

            txtDisplay.Text = total2.ToString();
            total1 = 0;

        }

        private void btnComma_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = txtDisplay.Text + btnComma.Text;
        }
        private void btnMinus_Click(object sender, EventArgs e)
        {
            total1 = total1 + double.Parse(txtDisplay.Text);
            txtDisplay.Clear();

            plusButton = false;
            minusButton = true;
            gangerButton = false;
            divideButton = false;
            restDivision = false;
        }

        private void btnDivision_Click(object sender, EventArgs e)
        {
            total1 = total1 + double.Parse(txtDisplay.Text);
            txtDisplay.Clear();
            plusButton = false;
            minusButton = false;
            gangerButton = false;
            divideButton = true;
            restDivision = false;
        }

        private void btnGanger_Click(object sender, EventArgs e)
        {
            total1 = total1 + double.Parse(txtDisplay.Text);
            txtDisplay.Clear();
            plusButton = false;
            minusButton = false;
            gangerButton = true;
            divideButton = false;
            restDivision = false;
        }

        private void btnRdivision_Click(object sender, EventArgs e)
        {
            total1 = total1 + double.Parse(txtDisplay.Text);
            txtDisplay.Clear();
            plusButton = false;
            minusButton = false;
            gangerButton = false;
            divideButton = false;
            restDivision = true; //det är här restDivision är sant och ska fungera för den knappen.
        }

        }
    }
```

Felet är när jag trycker t.ex 10 och sedan på % knappen så händer ingenting. Trycker jag på = tecknet så får jag bara något problem som uppstår så jag måste stänga av kalkylatorn. jag har även testat att trycka först på % och sedan 10 men inget händer. Vad är felet ?

har tagit bort koden till siffrorna så det inte ska blir ALLT för mycket för att läsa. Tacksam för hjälp! :)

Bilagor:

- [kalkylator1.png](https://www.webforum.nu/a/23532.png)
- [kalkylator3.png](https://www.webforum.nu/a/23533.png)

Permalänk: https://www.webforum.nu/p/191113

## #2 — The_Hulk, 2013-02-01T12:21Z

I kanppmetoderna för -+\*/ så börjar du alltid med 
total1 = total1 + double.Parse(txtDisplay.Text);

vilket så bara summerar ihop dina värder.
Vad händer om du försöker använda - och / 

att du får 10 när du skriver 5 \* 2 + 3 beror på att din kod räknar 5 + 2 + 3

Du behöver nog tänka om lite hur du gjort beräkningarna.
Du klickar ju aldrig på = mellan de olika operationerna.

Permalänk: https://www.webforum.nu/p/2307671

## #3 — Gramas19, 2013-02-12T20:00Z

Tack :) det testade när jag tryckte = mellan varje funktion, tror det räcker egentligen! :)

Permalänk: https://www.webforum.nu/p/2307825

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/191113-hjälp-med-min-kalkylator
