任何人都可以看到我的代码有什么问题吗?我从计算结果返回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();工作。我想我已经把其他项目搞砸了。感谢输入人员。
答案 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);
}
}