Runden?

Hallo Ihr!

Ich möchte gerne auf 2 Nachkommastellen runden, mit folgender Funktion wird aber auf keine Nachkommastelle gerundet.

Math.round(temp[2])

Könnt Ihr mir sagen, was ich ändern muß? Meine Java-Buch hat mich leider im Stich gelassen...

Danke!
Verregnete Grüße,
Lena
Re: Runden?

Hallo Lena,

Math.round() gibt immer einen ganzzahligen Wert zurück. Wenn man auf eine bestimmte Nachkommastelle runden will, muss man die zu rundende Zahl zuvor entsprechend multiplizieren und anschliessend wieder teilen:

int stellen = 2;
double zahl = 1.1234567;
double factor = Math.pow(10, stellen);

// Zahl mit 100 multiplizieren, dann runden (=112) anschliessend wieder durch 100 teilen

double gerundeteZahl = Math.round(zahl * factor) / factor;


mfg
Stefan
Dankeschön!!! o.T.
...
besser...
double d = 1,23456;
DecimalFormat df = new DecimalFormat("0.00");
String zahl = df.format(d);

Müsste auch funktionieren...

Bernd
Re: Runden?
Vielleicht gibt es dafür eine spezielle Funktion, die kenne ich allerdings im moment auch nicht.
Aber vielleicht kannst du das gewünschte Ergebnis mit einem kleinen Trick erreichen: mulitpliziere zuerst die Zahl mit 100, runde dann, und teile dann wieder durch 100.
hoffe das hilft dir!

gruß
Hendrik
Re^2: Runden?
hatte vorhin übersehen dass es schon reaktionen gab. naja, jedenfalls ist dein problem gelöst, das ist ja das wichtigste.