• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Funkcja kwadratowa - Problem z wprowadzeniem liczby rzeczywistej

Object Storage Arubacloud
+1 głos
131 wizyt
pytanie zadane 4 sierpnia 2016 w Java przez GUNJack Użytkownik (520 p.)
Witam :)
Chcę zaznaczyć że jestem nowy na forum, i jeszcze nie znam dokładnie zasad obowiązujących na forum i z góry przepraszam za błędy popełniane przeze mnie.
Jestem osobą bardzo początkującą jeżeli chodzi o programowanie.
Mój problem polega na tym że program który napisałem nie pozwala mi na wprowadzenie liczb rzeczywistych np: gdybym chciał wprowadzić liczbę 4.5, to wyskoczy mi błąd nie wiem jak sobie z tym poradzić :(.
package funkcja;
import java.io.IOException;
import java.util.InputMismatchException;
import java.util.Scanner;

public class Funckja {

	public static void main(String[] args) throws NumberFormatException, 
    IOException 
{    boolean in = true;
     int a;
     int b;
     int c;
     double d;
     double x;
     double x1;
     double x2;
     Scanner odczyt = new Scanner(System.in);
     do{
     try {
		System.out.print("Podaj pierwsza liczbe: ");
		 a = odczyt.nextInt();
		 System.out.print("Podaj druga liczbe: ");
		 b = odczyt.nextInt();
		 System.out.print("Podaj trzecia liczbe: ");
		 c = odczyt.nextInt();	
		 d = (Math.pow(b, 2))-(4*a*c);
		 if(d>0)
		 {		 	 
			 x1 = (-b-Math.sqrt(d))/(2*a);
		     x2 = (-b+Math.sqrt(d))/(2*a);
		     System.out.print("Delta wynosi: "+d+" "+"Funkcja ma dwa miejsca zerowe: "+x1+" "+x2);
		     in = false;
		 }
		 else if(d==0)
			 {x = (-b)/(2*a);
		 System.out.print("Delta wynosi: "+d+" "+"Funkcja ma jedno miejsce zerowe: "+ x);
		 in = false;
			 }
		 
		 else if(d<0)
		 {
			System.out.print("Delta wynosi: "+d+" "+"Brak miejsc zerowych"); 
			in = false;
			 
		 }
	} catch (InputMismatchException Ie) {
		

		System.err.print("Wprowadz liczbe calkowita");
		odczyt.nextLine();
		System.out.println("Wprowadz ponowinie dane");
		
	}
     catch (IllegalStateException ae) {
 		

 		System.err.print("Wprowadz liczbe calkowita");
 		odczyt.close();
 		System.out.println("Wprowadz ponowinie dane");
 		
 	}
     }
     while(in);
		 
		
     odczyt.close();
		
		
}
	
	
}

 

2 odpowiedzi

+1 głos
odpowiedź 4 sierpnia 2016 przez mrcnsct Nałogowiec (36,390 p.)
wybrane 4 sierpnia 2016 przez GUNJack
 
Najlepsza
Może podajesz liczby rzeczywiste z kropką zamiast przecinkiem? Spróbuj z przecinkiem. (To czy kropka czy przecinek zależy od ustawień regionalnych.) Tylko najpierw zamień a,b,c na double i nextInt(), na nextDouble(), jak już zostało powiedziane.
1
komentarz 4 sierpnia 2016 przez GUNJack Użytkownik (520 p.)
Dzięki za pomoc, chodziło faktycznie tylko o przecinek zamiast kropki :)
+2 głosów
odpowiedź 4 sierpnia 2016 przez Grzyboo Nałogowiec (28,860 p.)
Używasz liczb całkowitch (int) i dziwisz się, że nie możesz wprowadzić ułamków (double). Musisz a,b,c zamienić na double i nextDouble() w skanerze.
komentarz 4 sierpnia 2016 przez GUNJack Użytkownik (520 p.)
Już próbowałem to zrobić wcześniej i nic to nie dało dalej wyskakuje błąd.
komentarz 4 sierpnia 2016 przez Grzyboo Nałogowiec (28,860 p.)
To najwidoczniej źle zrobiłeś

Podobne pytania

0 głosów
2 odpowiedzi 538 wizyt
pytanie zadane 7 listopada 2016 w Inne języki przez Patryk Bieganski Nowicjusz (180 p.)
0 głosów
3 odpowiedzi 176 wizyt
pytanie zadane 6 kwietnia 2017 w JavaScript przez n0s1gnal Użytkownik (700 p.)
0 głosów
2 odpowiedzi 250 wizyt
pytanie zadane 25 marca 2016 w Java przez Dieet Nowicjusz (180 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...