public double calc(int v1) {
return v1 / 2 + 1.5;
}
public double cald (double v) {
return v / 2 + 1.5;
}
这些函数会返回相同的结果吗?
我认为它们不会返回相同的结果,因为第二个函数会包含小数点,而第二个函数会将数字四舍五入。
这是对的吗?
答案 0 :(得分:3)
将a
除以b
,a/b
如果两者 a
& b
为int
,结果为int
否则任意或两者 a
& b
为double
,结果为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