wczytanie wartości zmiennoprzecinkowej.

0

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

}
 
0

Klasa Scanner uwzględnia lokalny format liczb, wpisuj 5,5 zamiast 5.5

1 użytkowników online, w tym zalogowanych: 0, gości: 1