Метод int, который возвращает двойной - PullRequest
0 голосов
/ 15 марта 2012

Я пытался найти в Интернете и посмотреть на книги для этого, но я не могу найти решение. Куда бы я ни посмотрел с типом возврата 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 ]

3 голосов
/ 15 марта 2012

ALl вам нужно изменить

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

до

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

А затем измените метод, чтобы он не столько конвертировал в целые и обратно. Когда вы выполняете арифметику с двойным и целым числами, тип возвращаемого значения выражения является двойным, если вы его не приведете.

Ничего загадочного, типы параметров и возвращаемые типы не имеют никакого отношения друг к другу.

1 голос
/ 15 марта 2012

Хорошо, поэтому в этой программе довольно много проблем. Код должен выглядеть примерно так:

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, которое помогает сделать ваш код легче для чтения, особенно когда он увеличивается в размере.

Надеюсь, это поможет, и счастливого кодирования:)

0 голосов
/ 10 сентября 2012

Одним из решений вашего вопроса может быть:

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; 
}
}
0 голосов
/ 15 марта 2012

Метод int означает, что тип возвращаемого метода будет int. Параметры могут быть любые другие.

Как вы написали: public static int ConvertToMiles(int feet, double miles) Первый параметр будет входным, а второй с типом double будет выходным. Возвращаемое значение показывает только, была ли операция успешной или нет. Только внутренняя часть функции должна заполняться правильно.

0 голосов
/ 15 марта 2012

Чтобы перевести с "... но моя домашняя работа утверждает, что это должен быть метод int, который возвращает двойной ..." в Java, инструктор означает:

 double methodName(int i)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...