0

誰かが私のコードの何が問題になっているのかわかりますか?0計算の戻りから得ます。

2番目のクラスで小さな計算を作成し、結果データをメインクラスに渡してから、印刷します。

メインクラス

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

「セッター」関数 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 に答える