当前位置: 代码迷 >> J2SE >> 初学者求解习题,关于强制转换的
  详细解决方案

初学者求解习题,关于强制转换的

热度:106   发布时间:2016-04-24 01:47:38.0
菜鸟求解习题,关于强制转换的
Java code
class CCalculator{    int a,b,c;void set_value(int x,int y,int z){    a=x;    b=y;    c=z;}void show(){    System.out.println("a="+a+" b="+b+" c="+c);}int add(){    return a+b+c;}int sub(){    return a-b-c;}int mul(){    return a*b*c;}int avg(){     return (a+b+c)/3;}}public class p_155_10 {    /**     * @param args     */    public static void main(String[] args) {        CCalculator obj=new CCalculator();        obj.set_value(3, 4, 1);        int x=4,y=3;        System.out.println("x*y="+x*y);        System.out.println("x/y="+x/y+" x/y="+(double)x/y);                System.out.println("add="+obj.add()+" sub="+obj.sub()+" mul="+obj.mul()+" avg="+(double)obj.avg());//这里为何没有从int转换成double呢?        // TODO 自动生成方法存根    }}


求高手解答,不甚感激!

------解决方案--------------------
探讨
int avg(){
return (a+b+c)/3;
}
我想把这个方法里面的结果转换成double类型的。或者说这个方法如何修改,才能得到有小数结果?

return double(a+b+c)/3;
这样不行?

------解决方案--------------------
探讨

x*y=12
x/y=1 x/y=1.3333333333333333
add=8 sub=-2 mul=12 avg=2.0
转了,你在试试

------解决方案--------------------
一:double已经把类型转了 你的avg()函数返回的是一个int型,当调用函数之后再强转失去效果
二:改正后的
double avg(){
return (double)(a+b+c)/3;
}
  相关解决方案