日期:2014-05-20  浏览次数:20688 次

是强转的问题吗?
public class Pad {

private int a;
private int b;

public Pad(int a,int b) {
this.a = a;
this.b = b;

}
public int sum(){

return a+b;
}
public int sub(){
return a-b;
}
public int mul(){
return a*b;
}
public double div(){
return a/b;
}
public static void main(String[] args) {
Pad h1=new Pad(10,4);
h1.sum();
h1.sub();
h1.mul();
h1.div();

System.out.println(+h1.sum());
System.out.println(+h1.sub());
System.out.println(+h1.mul());
System.out.println(+h1.div());

上面的程序运行结果
14
6
40
2.0
因为double所以是2.0,为什么不是2.5,怎么能实现结果是2.5,求解

------解决方案--------------------
public double div(){
return a/b;
}
修改为
public double div(){
return 1.0*a/b;
}
------解决方案--------------------
好吧,我太坏了,确实是数据类型的问题,请这样写:
public double div(){
return (double) a/b;
}

整数 ÷ 整数,Java会强制整数运算的,直到最后赋值才按需转为double了。