读书人

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

发布时间: 2012-03-24 14:00:46 作者: rapoo

菜鸟求解习题,关于强制转换的

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;
}

读书人网 >J2SE开发

热点推荐