函数不返回double值,返回0

时间:2012-10-19 13:42:48

标签: java return-value

下面是我正在调用的函数,但无论我通过什么,它都会返回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。

2 个答案:

答案 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。