一个返回double的int方法

时间:2012-03-15 02:10:52

标签: java methods

我一直在尝试在线搜索并查看这本书,但我找不到解决方案。我查看返回类型int的所有地方,参数变量也必须是int,返回变量也必须是integer。但是我的作业表明它必须是int方法才能返回double

到目前为止,我所拥有的是:

import java.util.Scanner;

public class ConvertF {

    public static void main(String args[]){

    int n =0;

    Scanner s = new Scanner(System.in);

    System.out.println("How many feet do you wish to convert to miles?");

    n = s.nextInt();

    System.out.println("Passing values to ConverToMiles");

    ConvertToMiles(422, 142);

    System.out.printf(feet + "feet equals %2.2n miles", miles);




}

    public static int ConvertToMiles(int feet, double miles){
        int answer;
        double f = (double)feet;
        answer = feet/5280;
        double a = (double)answer;
        return answer;




    }

}

请帮我解决一下提示或解决方案。非常感谢。

5 个答案:

答案 0 :(得分:3)

你需要做的就是改变

public static int ConvertToMiles(int feet, double miles){

public static double ConvertToMiles(int feet, double miles){

然后改变方法,这样它就不会像往返那样转换。当你使用double和int进行算术运算时,表达式的返回类型是double,除非你强制转换它。

没有什么神秘的,参数类型和返回类型彼此没有关系。

答案 1 :(得分:1)

好的,这个程序有很多问题。代码应该看起来像:

import java.util.Scanner;

public class ConvertF {

    public static void main(String args[]){

        Scanner s = new Scanner(System.in);

        System.out.println("How many feet do you wish to convert to miles?");

        //Grab the user's input and store in feet input
        int feetInput = s.nextInt();

        System.out.println("Passing values to ConverToMiles");

        //Store the value returned by convertToMiles in milesOutput
        double milesOutput = convertToMiles(feetInput);

        //This prints the output - note how I have used "%2.2f" as we are now working
        //with floats (or more precisely doubles)
        System.out.printf(feetInput + " feet equals %2.2f miles", milesOutput);
    }

    /*
     * The word after static is the type the method returns (in this case a double)
     * the parameter (int feet) has local scope to this method. This means that 
     * only this method can see the variable 'feet' - basically you cannot use feet 
     * in the main method above. You are not required to declare a 'miles' variable as
     * this is the value the method is returning, it can be stored in a variable where
     * the method is called
     */
    public static double convertToMiles(int feet){
        return feet/5280.0; //One of these values must be a double to return a double
    }

}

请阅读评论,以便更好地了解事情的运作方式。

另请注意我如何将您的方法更改为convertToMiles而不是ConvertToMiles。这只是一个java约定,它有助于使代码更容易阅读,特别是当它的大小增加时。

希望这有帮助,并且编码很快:)。

答案 2 :(得分:0)

要从“...但我的家庭作业声明它必须是一个返回双重...的int方法”转换为Java,教师意味着:

 double methodName(int i)

答案 3 :(得分:0)

您的问题的一个解决方案可能是:

class Three
{
public static void main(String arg[])
{
int b=new Three().one();
System.out.println(b);
}
public  int one() 
{
double a=10;
return (int)a; 
}
}

答案 4 :(得分:-2)

int方法的意思是,方法的返回类型为int。参数可以是任何其他参数。

正如您所写:public static int ConvertToMiles(int feet, double miles) 第一个参数是输入,第二个参数是double,输出是double。返回值仅显示操作是否成功。 只有函数内部需要正确填充。