当前位置: 代码迷 >> J2EE >> 是强转的有关问题吗
  详细解决方案

是强转的有关问题吗

热度:93   发布时间:2016-04-22 02:12:23.0
是强转的问题吗?
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了。
  相关解决方案