Java Double / Integer

时间:2012-08-24 08:12:14

标签: java math int double

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

非常感谢!

7 个答案:

答案 0 :(得分:5)

1 / 10

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

您可以使用双重文字:

1.0 / 10.0

答案 1 :(得分:1)

  

1/10

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

答案 2 :(得分:1)

尝试:

int d = (int) (((double)4/10)*3);

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

我注意到您在问题中提到向上/向下舍入

Math.round()会帮助你。

  

返回与参数最接近的long。结果四舍五入到   通过添加1/2的整数,取结果的底限,并铸造   结果输入长。

答案 6 :(得分:0)

这将有效

int a = 1;
int b = 10;
int c = 3;    
int d = (1*3/10);    
System.out.println(d);