我一直在尝试在线搜索并查看这本书,但我找不到解决方案。我查看返回类型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;
}
}
请帮我解决一下提示或解决方案。非常感谢。
答案 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。返回值仅显示操作是否成功。
只有函数内部需要正确填充。