我正在尝试让用户输入几个数字,然后使用newNumerator = in.nextDouble()显示输出;但我要求将Fraction newNumerator更改为double,如果我这样做,我不得不将其更改为Fraction。 我错过了什么?
import java.util.Scanner;
public class FractionTest {
public static void main(String[] args){
Fraction newNumerator;
Fraction newDenominator;
newNumerator = new Fraction();
newDenominator = new Fraction();
Scanner in = new Scanner(System.in);
System.out.println("Please enter a numerator: ");
newNumerator = in.nextDouble(); // I get an error here
System.out.println("Please enter a denominator: ");
newDenominator = in.nextDouble(); // I get an error here
in.close();
}
}
上面是我的Main(),以下是我的班级。
public class Fraction {
public double numeratorAnswer;
public double denominatorAnswer;
public Fraction() {
}
public double getNumeratorAnswer(){
return numeratorAnswer;
}
public void setNumeratorAnswer(double newNumerator){
numeratorAnswer = newNumerator;
}
public double getDenominatorAnswer(){
return denominatorAnswer;
}
public void setDenominatorAnswer(double newDenominator){
denominatorAnswer = newDenominator;
}
}
答案 0 :(得分:1)
您试图将double
放入Fraction
变量,而不是将double
放入Fraction
。
要解决此问题,请使用单个Fraction
值并使用setNumeratorAnswer
与setDenominatorAnswer
和in.nextDouble()
通话。
答案 1 :(得分:0)
您正尝试在以下语句中为Fraction类的对象分配double值:
newNumerator = in.nextDouble(); // I get an error here
System.out.println("Please enter a denominator: ");
newDenominator = in.nextDouble(); // I get an error here
由于此演员表不可能,因此您需要获取双输入,然后指定Fraction class numeratorAnswer和denominatorAnswer属性。像这样:
double dnewNumerator = in.nextDouble();
System.out.println("Please enter a denominator: ");
double dnewDenominator = in.nextDouble();
newNumerator.setNumeratorAnswer(dnewNumerator);
newNumerator.setDenominatorAnswer(dnewDenominator);
我不确定你想要对输入做什么,所以不要在这里添加太多代码,只是展示如何设置Fraction类属性。我不瘦,你需要两个分数对象
答案 2 :(得分:0)
只需稍微更改代码的顺序即可:
Scanner in = new Scanner(System.in);
System.out.println("Please enter a numerator: ");
newNumerator = new Fraction(in.nextDouble());
System.out.println("Please enter a denominator: ");
newDenominator = new Fraction(in.nextDouble());
然后,在你的Fraction类中添加一个构造函数以接收double。
//Update your constructor as..
public Fraction(double numerator, double denominator) {
this.numeratorAnswer= numerator;
this.denominatorAnswer= denominator;
}
我想您可能知道为什么会出现评论代码中所述的错误。该错误是由给出不同数据类型的变量引起的。
您的newNumerator
和newDenominator
的数据类型为Fraction
。因此,您不能使用它来接受双值。
在我给出的代码示例中,您会收到double值并将这些值传递给Fraction类的分子&分母。
答案 3 :(得分:0)
您正试图将double
变成fraction
。您需要获取double
的值并将其分配给fraction
对象。
我希望这有助于回答你的问题。