我正在编写一个程序,根据用户提供的输入返回未来的值。
import java.util.Scanner; //import utility package, scanner class
import java.lang.Math; //import language package, math class
class InvestmentCalculation
{
public static void main(String[] args)
{
Scanner s = new Scanner(System.in);
//Principle Value Input
System.out.print("Enter principle deposit: ");
int p = s.nextInt ();
//Interest Rate Input
System.out.print("Enter annual interest rate: ");
int r = s.nextInt ();
double fv = p * Math.pow( (1.0 + r/100), 10);
//operation print
System.out.println("Your investment will be worth: " + fv);
}
} 当我运行程序时,在输入速率后,它会给出以下错误:
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 InvestmentCalculation.main(Addition.java:20)发布于 2015-06-30 04:41:47
这是因为您可能以双倍的形式输入速率,因此输入是不正确的。
注意:InputMismatchException在JavaDocs中的内容如下:
由扫描程序引发,指示检索到的令牌与预期类型的模式不匹配,或者令牌超出了预期类型的范围。
修复通道:
//Interest Rate Input
System.out.print("Enter annual interest rate: ");
double r = s.nextDouble();https://stackoverflow.com/questions/31129677
复制相似问题