0

谁能看到我的代码有什么问题?我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(); 工作。我想我把其他项目搞混了。感谢您的输入。

4

7 回答 7

3

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

您需要将任一操作数转换为double.

于 2012-12-18T15:11:42.027 回答
3
bla.getRatio();
String dCount = String.valueOf(bla.getRatio());

您永远不会调用 caln() 方法,因此 calRatio 永远为 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;
    }

}
于 2012-12-18T15:13:50.043 回答
1

你从来没有调用过“setter”函数caln(),所以calRatio从来没有设置过。所以它返回 0 为calRatio.

于 2012-12-18T15:14:00.330 回答
1

代替

public void caln () {

    calRatio = count / total;

    System.out.print(calRatio);

}

这样

public cal () {

    calRatio = count / total;

    System.out.print(calRatio);

}
于 2012-12-18T15:16:43.750 回答
0

我从计算返回中得到 0。

正如你应该的那样。11 / 2508进行整数除法,即0

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

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

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

于 2012-12-18T15:13:32.903 回答
0

试试这个:

public static void main(String[] args) {

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

        System.out.print(dCount);

    }
于 2012-12-18T15:15:45.433 回答
-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);
    }
}
于 2012-12-18T15:13:55.813 回答