Witam,
mam program który w switchu, w case 4: wczytuje liczbe miesięcy od użytkownika i procent.
Gdy wczytam ten procent np. 4 to jest dobrze, ale już 4.5 nie jest dobrze i wyskakują błędy.
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextDouble(Unknown Source)
at pack.bank.main(bank.java:63)
Do wczytania używam Scanner sc1 = new Scanner(System.in);
a w case mam:
procent = sc1.nextDouble();
co robię źle bo już nie wiem?
package pack;
import java.util.Scanner;
public class bank {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc1 = new Scanner(System.in);
double kapital_poczatkowy;
System.out.print("Podaj kwote poczatkowa.\n\n");
kapital_poczatkowy = sc1.nextDouble();
KontoOszczednosciowe ob1 = new KontoOszczednosciowe(kapital_poczatkowy);
int dec;
do{
System.out.print("Co chcesz zrobić\n\n");
int a;
System.out.print("1. Wplata\n");
System.out.print("2. Wyplata\n");
System.out.print("3. Bilans\n");
System.out.print("4. Odsetki\n");
a = sc1.nextInt();
switch(a)
{
case 1: {
System.out.print("Podaj kwote wplaty.\n");
double kwota;
kwota = sc1.nextDouble();
ob1.wplata(kwota);
break;
}
case 2:{
System.out.print("Podaj kwote wyplaty.\n");
double kwota;
kwota = sc1.nextDouble();
ob1.wyplata(kwota);
break;
}
case 3:{
System.out.print("Bilans: \n" + ob1.Bilans());
break;
}
case 4:{
int miesiace;
double procent;
System.out.print("Podaj liczbe miesiecy na jaka ma byc zalozona lokata i oprocentowanie.\n\n");
miesiace = sc1.nextInt();
procent = sc1.nextDouble();
System.out.print("Twoje odsetki: " + ob1.Odsetki(miesiace, procent));
break;
}
default:{
System.out.print("Zly numer.\n\n");
break;
}
}
System.out.print("Jeszcze raz? (1/0) \n");
dec = sc1.nextInt();
}while(dec==1);
//Scanner sc2 = new Scanner(System.in);
System.exit(0);
}
}