Witam, mam problem z przypisaniem ułamka zwykłego do zmiennych a,b,c wpisywanych z klawiatury, gdy wpisuje np. 5/3 to otrzymuje błąd :
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.nextDouble(Scanner.java:2413)
at Main.main(Main.java:21)
import java.io.IOException;
import java.util.Scanner;
/**
Program, który oblicza pierwiastki funkicj kwadratowej
ax2+bx+c = 0 z wykorzystaniem instrukcji warunkowej
if, gdzie zmienne a, b i c to liczby rzeczywiste wprowadzane
z klawiatury. Dla zmiennych a, b, c, x, x1 oraz x2 należy przyjąć
format wyświetlania ich na ekranie z dokładnością do dwóch
miejsc po przecinku.
*/
public class Main {
public static void main (String args [])throws IOException {
double a, b, c, x, x1, x2, delta;
System.out.println("Wprowadz wspolczynnki funkcji kwadratowej w postaci ogolnej ax^2 + bx + c ");
Scanner wczytajWartosci = new Scanner(System.in);
System.out.print("Wspolczynnik a = ");
a = wczytajWartosci.nextDouble();
System.out.print("Wspolczynnik b = ");
b = wczytajWartosci.nextDouble();
System.out.print("Wspolczynnik c = ");
c = wczytajWartosci.nextDouble();
delta = (b * b) - 4 * (a) * (c);
x = (-b) / (2 * (a));
x1 = ((- b) - Math.sqrt(delta)) / (2 * (a));
x2 = ((- b) + Math.sqrt(delta)) / (2 * (a));
if (a == 0) {
System.out.println("Wspolczynnik a musi byc rozny od zera!");
} else {
if (delta > 0) {
System.out.print("Funkcja ma dwa miejsca zerowe ");
System.out.printf("x1 ="+" %.2f", x1);
System.out.printf(" x2 ="+" %.2f", x2);
} else if (delta == 0) {
System.out.printf("Funkcja ma jedno miejsce zerowe x = " + " %.2f", x);
} else if (delta < 0) {
System.out.println("Funkcja nie ma miejsc zerowych.");
}
}
}
}