如何计算将整个输入作为字符串的计算器中的百分比?

时间:2017-12-26 09:51:44

标签: java android stack

public static int applyOp(char op, int b, int a) {
    switch (op) {
        case '+':
            return a + b;
        case '-':
            return a - b;
        case '*':
            return a * b;
        case '%':
            return a % b;  //But this doesn't work properly.
        case '/':
            if (b == 0)
                throw new
                        UnsupportedOperationException("Cannot divide by zero");
            return a / b;
    }
    return 0;
}

}

我尝试使用100 * 10 + 2,525 + 5%,525 * 5%,但其他运算符正常工作,但'%'没有。

2 个答案:

答案 0 :(得分:1)

public static int applyOp(char op, int b, int a) {
    switch (op) {
        case '+':
            return a + b;
        case '-':
            return a - b;
        case '*':
            return a * b;
        case '%':

            return (int)(((float) a / b) * 100);
        case '/':
            if (b == 0)
                throw new
                        UnsupportedOperationException("Cannot divide by zero");
            return a / b;
    }
    return 0;
}

}

在使用%时,它会modulus

返回a [余数] b npm i -g http-server --save

答案 1 :(得分:0)

a运算符计算提醒而非百分比。

如果您想计算b的{​​{1}}的百分比是多少?',您可以使用以下内容:

(int) (((float) a / b) * 100)

您需要强制转换为float以使用浮点除法而不是整数除法(仅用于a/b),以便在乘以100之前不会丢失精度。

另一个选择是先乘以:

a * 100 / b

但是如果a的数量很大,你可能会得到一个整数溢出。