int a = 1; int b = 10; int c = 3; int d = (1/10)*3 System.out.println(d) Result: 0
我如何使这个计算工作?向上还是向下取整?它应该是: (1/10)*3 = 0.1 * 3 = 0.3 = 0 和 (4/10)*3 = 0.4 * 3 = 1.2 = 1
非常感谢!
1 / 10
这是整数除法,整数除法结果为 0。然后 0 * 3 = 0
您可以使用双重文字:
1.0 / 10.0
1/10
此行返回 0.so 0*3=0。使用double而不是int
尝试:
int d = (int) (((double)4/10)*3);
因为 a 和 b 都是整数,所以输出也将是 int ,这使得 1/10 为 0,然后 0*3=0
您将需要使用浮点表示来执行计算。然后您可以将结果转换回整数。
我注意到您在问题中提到了rounding up/down。
Math.round()将在这里为您提供帮助。
返回最接近参数的 long。通过加 1/2、取结果的下限并将结果转换为 long 类型,将结果四舍五入为整数。
这将有效
int a = 1;
int b = 10;
int c = 3;
int d = (1*3/10);
System.out.println(d);