0
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

非常感谢!

4

7 回答 7

5
1 / 10

这是整数除法,整数除法结果为 0。然后 0 * 3 = 0

您可以使用双重文字:

1.0 / 10.0
于 2012-08-24T08:14:39.053 回答
1

1/10

此行返回 0.so 0*3=0。使用double而不是int

于 2012-08-24T08:14:27.777 回答
1

尝试:

int d = (int) (((double)4/10)*3);
于 2012-08-24T08:15:36.550 回答
0

因为 a 和 b 都是整数,所以输出也将是 int ,这使得 1/10 为 0,然后 0*3=0

于 2012-08-24T08:14:44.670 回答
0

您将需要使用浮点表示来执行计算。然后您可以将结果转换回整数。

于 2012-08-24T08:15:44.413 回答
0

我注意到您在问题中提到了rounding up/down

Math.round()将在这里为您提供帮助。

返回最接近参数的 long。通过加 1/2、取结果的下限并将结果转换为 long 类型,将结果四舍五入为整数。

于 2012-08-24T08:17:37.550 回答
0

这将有效

int a = 1;
int b = 10;
int c = 3;    
int d = (1*3/10);    
System.out.println(d);
于 2012-08-24T08:21:26.857 回答