C# Calculator met behulp van clipboard en een notificatie

Pagina: 1
Acties:
  • 439 views

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik maak een notificatie calculator die een gekopieerde som uitrekent en aan de hand daarvan het goede antwoord laat zien. Dat blijkt aardig te lukken. Nu wil ik nog 2 extra functies erin die ik niet weet toe te passen. Namelijk het uitrekenen van percentage van een bepaald bedrag bijvoorbeeld 2 * 0.25 = 0.50.

Maar dat werkt niet aangezien me calculator niet decimale getalen kan uitrekenen. En ik wil dat me programma zowel niet decimale getallen als wel decimale getalen kan berekenen.

En is het mogelijk om ook eigen operators toe te voegen bijvoorbeeld voor m2 cm2 m3 en cm3 etc.

Alvast bedankt!

Dit is mijn code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
private char[] SPACE = new char[] { ' ' };
private void GetAnswer(string clipboardText)
{
    var parts = clipboardText.Split(SPACE);
    var isValid = true;
    int a, b;

    // Make sure it's format A # B
    if (parts.Length != 3)
        return;

    // Parse first number
    isValid = int.TryParse(parts[0], out a);
    if (!isValid)
        return;

    var validOperators = new char[] { '+', '-', '/', '*' };

    // Parse operator
    if (parts[1].Length != 1)
        return;
    var op = parts[1][0];
    if (!validOperators.Contains(op))
        return;

    // Parse 2nd number
    isValid = int.TryParse(parts[2], out b);
    if (!isValid)
        return;

    // Now calculate the answer
    string answer = null;
    switch (op)
    {
        case '+':
            answer = (a + b).ToString();
            break;
        case '-':
            answer = (a - b).ToString();
            break;
        case '/':
            if (b == 0)
                answer = "NaN";
            else
                answer = (a / b).ToString();
            break;
        case '*':
            answer = (a * b).ToString();
            break;
        default:
            throw new InvalidOperationException();
    }

    // Show the answer
    ShowNotification(clipboardText, answer);
}

[ Voor 95% gewijzigd door Verwijderd op 20-04-2019 17:14 ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Ik wil ik wil dit is me code.

Wat snap je niet aan de quickstart waar we je meermaals op gewezen hebben?

...en het is *mijn*, niet me.

Voordat je een nieuw topic opent: kijk eens naar datatypes, float, double en decimal. En om de volgende vragen voor te zijn: Programming FAQ - Getallen en talstelsels

[ Voor 39% gewijzigd door RobIII op 20-04-2019 18:24 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Dit topic is gesloten.