下面是我正在调用的函数,但无论我通过什么,它都会返回0。
public static Double calc(double methods, double attributes) {
double a=0;
for (int i=0;i<k;i++) {
for (int j=0;j<l;j++) {
if(matrix[i][j]==1)
a++;
}
}
Double v= new Double( a/(methods*attributes));
System.out.println("The value of v = " + v.doubleValue() );
return v.doubleValue();
}
System.out
语句在函数中打印正确的值,但返回值打印0.0。
答案 0 :(得分:0)
我从你的函数中取出了循环(它所做的就是为a赋值)。我添加了一个主要内容(见下文)。
退货工作正常。也许问题在于你如何使用返回值?
public class Test {
public static Double calc(double methods, double attributes) {
double a=2.0;
Double v= new Double( a/(methods*attributes));
System.out.println("The value of v = " + v.doubleValue() );
return v.doubleValue();
}
public static void main(String [] args) throws Exception
{
Double x = calc(2.0,3.0);
System.out.println(x);
}
}
答案 1 :(得分:0)
我已经运行了一个演示:
public class demo1{
public static Double calc(double methods, double attributes) {
double a=0;
int k=2;
int l=2;
//int[][] matrix=new int[2][2];
//int
int[][] matrix={{1,2},{2,1},{2,2},{2,2}};
for (int i=0;i<k;i++) {
for (int j=0;j<l;j++) {
if(matrix[i][j]==1)
a++;
}
}
Double v= new Double( a/(methods*attributes));
System.out.println("The value of v = " + v.doubleValue() );
return v.doubleValue();
}
public static void main(String s[]){
Double x = calc(2.0,3.0);
System.out.println(x);
}
}
输出如下:
The value of v = 0.3333333333333333
0.3333333333333333
所以它不会返回0.0。