【发布时间】:2016-10-21 09:00:47
【问题描述】:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at Commission2.main(Commission2.java:38)
一开始它运行良好,直到一切都崩溃了。现在我需要帮助。有人吗?
import java.util.Scanner;//程序需要scanner 导入 java.text.DecimalFormat;
public class Commission2
{
public static void main(String args[])
{
//create Scanner
Scanner input = new Scanner(System.in);
//format decimal with two digits
DecimalFormat twoDigits = new DecimalFormat("0.00");
//format decimal with three digits
DecimalFormat threeDigits = new DecimalFormat("0.000");
//declare all variables
int size,count = 0;
int pay = 200;
double commission = 9/100;
double result = 0;
double item, itemtotal = 0;
//get the limit of the data entry (data validation technique)
do{
System.out.printf("Enter the number of items :");
size = input.nextInt();
}while(size < 0);
//data entry
while (count < size) {
System.out.print("Enter price of item #" +(count + 1) +": ");
item = input.nextInt();
/*Processing!*/
itemtotal += item;
++count;
}//end while
result = (itemtotal * commission) + pay;
System.out.printf("%s%d\n","The total earnings for this week is $",result);
}
}
【问题讨论】:
-
Commission2.main(Commission2.java:38),检查第 38 行,很可能您输入的数据类型错误
-
@Ankit Deshpande 我不认为你是正确的。我在发布之前检查了这一点。我发布这个的原因是因为我被难住了。
-
@Gerald Loo 你能添加失败的输入吗?
-
@Andrea 如果我很粗鲁,我很抱歉。是您的评论/建议只是在代码中添加了更多错误消息。
-
您确定要提供
integers供您输入吗?我试过你的代码,它适用于整数输入,但它在最后一行System.out.printf("%s%d\n","The total earnings for this week is $",result);崩溃。您需要将其更改为System.out.printf("%s%f\n", "The total earnings for this week is $", result);,因为 Lucian Nut 正确回答。
标签: java printing formatting output numeric