带剪贴板的计算器和带有附加功能的通知

时间:2019-04-20 15:19:19

标签: c# winforms operators

我制作了一个通知计算器,用于计算复制的总和,并基于此显示正确的答案。看来效果很好。现在,我还需要2个我不知道如何应用的功能。即,计算一定数量的百分比,例如2 * 0.25 = 0.50。

但是这不起作用,因为我的计算器无法计算十进制数字。我希望我的程序能够根据您的计算结果来计算非十进制数和十进制数。

这是我的代码

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

0 个答案:

没有答案