Variablen float rundet beim Bruch rechnen

Waterfront

Mitglied
Moinsen!

Ich hab grad ein bisschen rumgespielt und eine "rechnen" Methode geschrieben, es funktioniert auch bisauf das divideren alles so wie ich es will. Wenn ich ich jetzt 5 durch 2 rechne, dann kommt 2.0 raus.
Ich möchte aber das 2 Komma stellen angezeigt werden 🙁

Java:
	public static void main(String[] args) {
		rechnen(5,"dividieren",2);
	}
	
	public static void addieren(int val1 , int val2){
		int result = val1 + val2;
		System.out.println("" + val1 + "+" + val2 + " ergibt " + result);
	}
	
	public static void subtrahieren(int val1, int val2){
		int result = val1 - val2;
		System.out.println("" + val1 + "-" + val2 + " ergibt " + result);
	}
	
	public static void multiplizieren(int val1, int val2){
		int result = val1 * val2;
		System.out.println("" + val1 + "*" + val2 + " ergibt " + result);
	}
	
	public static void dividieren(int val1, int val2){
		float result = val1 / val2;
		System.out.println("" + val1 + "/" + val2 + " ergibt " + result);
	}
	
	public static void rechnen(int val1, String operator, int val2){
		
		switch (operator){
		case "plus":
			addieren(val1,val2);
			break;
		case "minus":
			subtrahieren(val1,val2);
			break;
		case "multiplizieren":
			multiplizieren(val1,val2);
			break;
		case "dividieren":
			dividieren(val1,val2);
			break;
		default:
			System.out.println("Hier stimmt was nicht :)");
		}
		
	}

LG
Water
 
Du must val1 und val2 auf float casten 😉
Wenn du zwei int Variablen dividierst wirst du immer einen abgeschnittenen Wert erhalten. Deshalb musst du diese als float casten.
Und am besten verwendest du double statt float, da du bei double mehr Genauigkeit hast. Float ist eher unüblich
 
Zuletzt bearbeitet:
Du rechnest nunmal mit Integer-Werten. Bei deinem Beispiel wird zuerst die Ganzzahl-Operation val1 / val2 durchgeführt. Das Ergebnis wird wieder als Ganzzahl interpretiert. Anschließend wird erst diese Ganzzahl in ein Float umgewandelt. Du musst hier schon vorher nach float casten.

Java:
        int a = 5;
        int b = 2;
        float f = a / b;
        float fl = (float) a / b;
        
        System.out.println(f);
        System.out.println(fl);

Ausgabe:
Code:
2.0
2.5
 

Neue Themen


Zurück
Oben