Java int vs. Double

时间:2011-05-15 12:13:45

标签: java function double int

public double calc(int v1) {
return v1 / 2 + 1.5;
}


public double cald (double v) {
return v / 2 + 1.5;
}

这些函数会返回相同的结果吗?

我认为它们不会返回相同的结果,因为第二个函数会包含小数点,而第二个函数会将数字四舍五入。

这是对的吗?

4 个答案:

答案 0 :(得分:3)

a除以ba/b

如果两者 a& bint,结果为int 否则任意或两者 a& bdouble,结果为double

修改

另请参阅我对此问题的回答Simple Divide Problem

答案 1 :(得分:2)

他们没有:see sample on IDEONE,克隆它并使用它。

System.out.println(calc(1));// gives 1.5
System.out.println(cald(1.0));// gives 2.0

答案 2 :(得分:1)

int v1 = 1;
return v1 / 2 + 1.5; // = 1.5

它是一个整数除以整数的两倍。 或者在你的情况下1/2,它是0.5,但它是一个分区,因此将是0,更多1.5,返回1.5。

double v = 1.0;
return v / 2 + 1.5; // = 2.0

这种情况下,除法在double和int之间,返回值0.5的两倍,与1.5相加将返回2.0。

答案 3 :(得分:0)

他们不会返回相同的。如果数字是整数,则/默认为整数除法,即如果a是整数,则a/2的结果是没有提醒的整数。而如果a是双精度数,则该除法的结果是双精度。

5/2 = 2
5.0/2 = 2.5