Zahlen runden klappt nicht wirklich!

Hallo,
ich versuche verzweifelt Zahlen auf 1 bzw. 2 Nachkommastellen zu runden. Hiermit müssten doch 2 Nachkommastellen rauskommen:

double zahl = 1.6552981;
double z = java.lang.Math.round( zahl * 100 ) / 100 ; 
System.out.println("double: "+z);

Aber es wird immer 1.0 ausgegeben. Was läuft da falsch? Hab auch anstelle von double es mit float versucht. Gleiches Ergebnis. :mad:

  1. du kannst einfach nur Math.round schreiben :wink:
  2. ganz einfach round gibt einen int zurück int/int = int → keine Nachkommastellen

Schau dir mal die Klasse DecimalFormat an! Findest du in java.util.text glaube ich. Da kannst du angeben auf wieviele Stellen gerundet werden soll. Meine aber jedoch das da ein String zurück gegeben wird.

Richtig. Und je nach Locale wird der Dezimal-Punkt durch das Dezimal-Komma ersetzt. Also beim parsen aufpassen :wink: .

[japi]DecimalFormat[/japi] ist fuer die Formatierung von Zahlen verantwortlich… das bringt nichts beim Runden… und wenn dann wuerde ich gleich ueber den [japi]Formatter[/japi] (z.b. printf) gehen und nicht mehr ueber DecimalFormat.

und Math.round() gibt kein int zurueck sondern long…

das einzige was mir einfaellt ist
double k = Math.round(i * 100) / 100d;