Java tizedesszám probléma?
A program kiszámolja az egész számokkal a műveleteket,de ha egy tizedesszámot adok meg akkor ezt az üzenetet adja ki:
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.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at Atlag.main(Atlag.java:7)
Az Eclipse nevű programmal csináltam.
Itt van a kód:
import java.util.*;
public class Atlag {
public static void main(String[] args) {
Scanner atlag = new Scanner(System.in);
System.out.println("Add meg a jegyeid összegét");
double osszeg = atlag.nextInt();
System.out.println("Add meg a jegyeid számát!");
double jszam = atlag.nextInt();
double atlag01 =osszeg/jszam;
System.out.println("At átlagod: "+atlag01);
atlag.close();
}
}
double osszeg = atlag.nextInt();
Ez szerinted mit csinál?
Mi az a "maradékosan oszt"?
int = egész szám, itt van egész osztás, illetve maradékképzés
double = dupla pontosságú (?) lebegő pontos szám ~ valós szám, itt van a "hagyományos" osztás
A kollega a nextInt()-re próbálta felhívni a figyelmedet:
ez egy egész számot (int-et) vár!
Ha rendesen szeretnél programozni, akkor nem engedheted ezt meg magadnak. Nincsen "igazából nemtudom", tudni kell.
Ez a sor levesz egy intet a bemenetből, majd azt kasztolja double-é. Ha doublet akarsz levenni, akkor atlag.nextDouble();
Amit te mondasz, az nem ez a sor. (int)/(int) -> maradékos osztás(int). (double)/(double) = (double), "rendes" osztás.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!