尝试使用脚本的输入来划分并显示答案

时间:2017-03-19 01:36:05

标签: java input decimal division

我想要做的是接受用户的输入并让代码划分两个输入,列出任何需要它的数字,当它不分成一个漂亮的偶数时。 所以这就是我到目前为止所拥有的。

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); 



}

这实际上是我的第一天编码,所以我希望它会很简单。我通过一些搜索发现,使用整数不会报告小数,所以我将我的数字改为浮点数。当我将所有数字都作为整数时,它会吐出一个数字,但是不会保留剩余的数字,所以我只得到一个偶数。所以我把它们变成了花车,现在它只是给了我一个错误。我不想成为那个家伙,但是有人看到我做错了什么吗?

2 个答案:

答案 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表示十进制整数。

Formatting Numeric Print Output

答案 1 :(得分:0)

由于您已从使用ints更改为floats,因此您还必须对其进行更改,以便您的扫描仪输入float输入而不是int输入。否则,您将收到错误类型错误。为此,请更改以下行:

number1 = input.nextInt();
number2 = input.nextInt();

number1 = input.nextFloat();
number2 = input.nextFloat();