Калькулятор с буфером обмена и уведомлением с дополнительными функциями - PullRequest
0 голосов
/ 20 апреля 2019

Я делаю калькулятор уведомлений, который вычисляет скопированную сумму и показывает правильный ответ на основании этого.Это, кажется, работает довольно хорошо.Теперь я хочу еще 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...