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%,但其他运算符正常工作,但'%'没有。
答案 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
的数量很大,你可能会得到一个整数溢出。