Die Double-Variable rundet?

m.s

Mitglied
Hallo, ich bin grad dabei ein Durchschnitts-Rechner-Programm zu machen, aber meine Double-Variable rundet komischerweise .. Woran kann das liegen?
Java:
package Arrays;

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		int x_ex = 0;
		double y_ex = 0;
		Scanner scan = new Scanner(System.in);
		System.out.println("Wie viele Exen hast du geschrieben?");
		int l = scan.nextInt();
		
		int[] a = new int [l];
		System.out.println("Nenne alle deine Ex-Noten!");
		
		for(int i = 0; i < a.length; i++){
			a[i]=scan.nextInt();
		}
		for(int i = 0; i < a.length; i++){
			
			x_ex +=a[i];
			}
		System.out.println(x_ex);
		System.out.println(a.length);
		y_ex = x_ex / a.length;
		
		System.out.println("Dein Durchschnitt ist: " + y_ex);
		
	}

}

Wenn ich jetzt für die Anzahl der Exen "4" eingeben würde und dann als Noten: 1,2,3,4
Dann würde ich als Ergebnis 2.0 erhalten, aber eigentlich müsste 2.5 als Ergebnis rauskommen.

Lg 🙂
 
Das lieg daran, dass [c]x_ex[/c] und [c]a.length[/c] beides Integer-Werte sind.
Code:
int / int
gibt immer
Code:
int
und das ist immer abgerundet.
Damit eine Fließkommazahl bei rauskommt müssen beide operatoren eine Fließkommazahl sein (wobei
Code:
float / double = float
). Stichwort typecasting.
 

Zurück
Oben