2017-03-19 41 views
0

我想要做的事情是從用戶獲取輸入並讓代碼劃分兩個輸入,列出任何需要它作爲小數點的數字,分成一個很好的偶數。所以這就是我到目前爲止。試圖使用腳本的輸入來劃分和顯示答案

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

使用scanner.nextFloat()而不是scanner.nextInt(); – CodeIsLife

回答

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()方法掃描輸入作爲一個浮動的下一個標記,

編輯

這能解決你的另一個問題:在線程

異常 「主要的」 java .utilIllegalFormatConversionException: d!= java.langlFloat at java.util.Formatter $ Form atSpecifier.failConversion(未知來源)

System.out.printf("%f%s%f%s%f.%n", number1, " divided by ", number2, " is ", dividend); 

使用f浮法類型。

d表示十進制整數。

Formatting Numeric Print Output

+0

所以我確實忽略了這一點,但似乎並沒有解決我的問題。 '線程中的異常「main」java.utilIllegalFormatConversionException:d!= java.lang.Float at java.util.Formatter $ FormatSpecifier.failConversion(Unknown Source)''。以'at'開頭的其他行中。 –

+0

@oh我看到另一個問題,我會解決這個問題,給我一秒鐘。 –

+0

你先生,太棒了。謝謝! –

0

因爲您使用intsfloats改變,你也有讓您的掃描儀正在採取float輸入,而不是int輸入來改變它。否則,你會得到一個錯誤的類型不匹配。要做到這一點,更改以下行:

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

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