falsches ergebnis bei einfacher berechnung

Pillepalle

Mitglied
Hallo,

habe folgendes Problem. Java berechnet für 50 mal 1.1 nicht 55, sondern 55.000000001.
Was mache ich falsch?

Grüße


Java:
class AchtE {
	public static void main (String[] args){

		System.out.println(50*1.1);

		System.out.println("50.00");
		System.out.println("0%");


		double kosten = 50.0;
		for (int prozent = 1;prozent<=10;prozent++){



		kosten = kosten*1.1;


		System.out.println(kosten+" €");
		System.out.println(prozent*10+" %");
		}


	}
}
 
Du machst nichts falsch, das ist einfach ne Tatsache. Nicht alle Gleitkommazahlen können binär gespeichert werden. Google mal nach Gleitkommaarithmetik, da kann man ne Menge nachlesen.
Du kannst dein Ergebnis aber z.b. einfach auf zwei Nachkommazahlen formatieren (siehe [JAPI]DecimalFormat[/JAPI]).
 
Ok, danke, das wusste ich nicht. Der Vollständigkeit halber dann noch die Lösung mit meinem Könnenstand.

Java:
class AchtE {
	public static void main (String[] args){

		System.out.println((Math.round(50.00*1.1*100))/100.00);

		System.out.println("50.00");
		System.out.println("0%");


		double kosten = 50.0;
		for (int prozent = 1;prozent<=10;prozent++){



		kosten = (Math.round(kosten*1.1*100))/100.00;


		System.out.println(kosten+" €");
		System.out.println(prozent*10+" %");
		}


	}
}
 

Zurück
Oben