Java传递int值/数据

时间:2012-12-18 15:10:31

标签: java integer

任何人都可以看到我的代码有什么问题吗?我从计算结果返回0

在第二个类上创建一个小计算并将结果数据传递给主类,然后打印。

主要课程

package javaapplication3;

public class JavaApplication3 {

    public static void main(String[] args) {

        cal bla = new cal();

        bla.getRatio();
        String dCount = String.valueOf(bla.getRatio());

        System.out.print(dCount);

    }
}

第二课

package javaapplication3;

public class cal {

    public int total = 11;
    public int count = 2508;
    public int calRatio;

    public void caln () {

        calRatio = count / total;

        System.out.print(calRatio);

    }

    public int getRatio () {
        return (calRatio);
    }

}

PS:将bla.getRatio更改为bla.caln();工作。我想我已经把其他项目搞砸了。感谢输入人员。

7 个答案:

答案 0 :(得分:3)

你正在进行整数除法,它会将结果截断为整数。

您需要将操作数转换为double

答案 1 :(得分:3)

bla.getRatio();
String dCount = String.valueOf(bla.getRatio());

你从不打电话给氏族() - 方法,社会比率永远是0。

也许你的意思如下:

bla.caln();
String dCount = String.valueOf(bla.getRatio());

另外,你试图划分整数。试试这个:

public class cal {

    public int total = 11;
    public int count = 2508;
    public double calRatio;

    public void caln () {

        calRatio = count / total;

        System.out.print(calRatio);

    }

    public double getRatio () {
        return calRatio;
    }

}

答案 2 :(得分:1)

你永远不会调用“setter”函数caln(),因此永远不会设置calRatio。所以它为calRatio返回0。

答案 3 :(得分:1)

替换

public void caln () {

    calRatio = count / total;

    System.out.print(calRatio);

}

由此

public cal () {

    calRatio = count / total;

    System.out.print(calRatio);

}

答案 4 :(得分:0)

  

我从计算结果中得到0。

你应该如此。 11 / 2508执行整数除法0

如果你想要非零我建议改变

    public double getAverage () {
        return (double) total / count;
    }

通常您将总数除以计数以获得平均值。

答案 5 :(得分:0)

试试这个:

public static void main(String[] args) {

        cal bla = new cal();
        bla.caln();
        String dCount = String.valueOf(bla.getRatio());

        System.out.print(dCount);

    }

答案 6 :(得分:-1)

它将始终返回0,因为您返回的是int类型。你的除法结果总是一些浮点值,所以你需要存储它,然后返回它。

public class cal {
    public int total = 11;
    public int count = 2508;
    public double calRatio;
    public void caln() {
        calRatio = (double)count / (double)total;
        System.out.print(calRatio);
    }
}