我想要做的是接受用户的输入并让代码划分两个输入,列出任何需要它的数字,当它不分成一个漂亮的偶数时。 所以这就是我到目前为止所拥有的。
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
float number1; //first number to divide
float number2; //second number to divide
float dividend; //product of division
System.out.print("Enter first integer: "); //prompt
number1 = input.nextInt(); // read first number
System.out.print("Enter second integer: "); //prompt
number2 = input.nextInt(); // read second number
dividend = number1 / number2;
System.out.printf("%d%s%d%s%d.%n", number1, " divided by ", number2, " is ", dividend);
}
这实际上是我的第一天编码,所以我希望它会很简单。我通过一些搜索发现,使用整数不会报告小数,所以我将我的数字改为浮点数。当我将所有数字都作为整数时,它会吐出一个数字,但是不会保留剩余的数字,所以我只得到一个偶数。所以我把它们变成了花车,现在它只是给了我一个错误。我不想成为那个家伙,但是有人看到我做错了什么吗?
答案 0 :(得分:1)
使用Scanner.nextFloat()
而不是Scanner.nextInt()
。
System.out.print("Enter first integer: "); //prompt
number1 = input.nextFloat(); // read first number
System.out.print("Enter second integer: "); //prompt
number2 = input.nextFloat(); // read second number
Scanner.nextFloat()
方法将输入的下一个标记扫描为float,
修改强>
这解决了你的另一个问题:
线程“main”中的异常java.utilIllegalFormatConversionException: d!= java.langlFloat at java.util.Formatter $ FormatSpecifier.failConversion(Unknown Source)
System.out.printf("%f%s%f%s%f.%n", number1, " divided by ", number2, " is ", dividend);
将f
用于浮动类型。
d
表示十进制整数。
答案 1 :(得分:0)
由于您已从使用ints
更改为floats
,因此您还必须对其进行更改,以便您的扫描仪输入float
输入而不是int
输入。否则,您将收到错误类型错误。为此,请更改以下行:
number1 = input.nextInt();
number2 = input.nextInt();
到
number1 = input.nextFloat();
number2 = input.nextFloat();