title image


Smiley Re: http://www.spotlight.de/zforen/ajav/m/ajav-1077615204-10101.html
Hi.

Ich habs gerade ausprobiert und es ist "HALF_EVEN".



Damit rundet er entweder ab oder auf.



Man muss nur aufpassen ( der Fehler ist mir passiert), dass man in der "divided" Funktion des BigDecimal-Wertes den ersten Wert (durch den dann geteilt wird) auf BigDecimal(1) setzt. Sonst teilt er ja nicht durch 1 und dann hat man nen falsches Ergebnis.



Bei mir kam jetzt sowas raus (hab mir doch ne eigene Funktion geschrieben, der einfachheithalber):





public static double round(double wert, int stelle) {

//Den zu rundenden Wert zum rechnen in einen BigDecimal-Wert überführen

BigDecimal temp = new BigDecimal(wert);



//die Rundungsart wird als int Wert gespeichert

int rundngsart = BigDecimal.ROUND_HALF_EVEN;



/*mit divided runden. 1.Wert steht für die Zahl, durch die dividiert wird,

* hier also 1, weil man den Wert ja nicht verfälschen will;

* der 2. Wert (stelle) ist eine int-Zahl die der zu rundenden Stelle

* entspricht. Will man also auf die 2. Stelle runden muss man hier 2 wählen;

* rundungsart ist der int-Wert der für die Art des Rundens steht.

*/

BigDecimal erg = temp.divide(new BigDecimal(1), stelle, rundngsart);



//Den gerundeten Wert als double-Wert zurückliefern

return erg.doubleValue();

}







Hoffe das hilft auch mal anderen die dasselbe Problem haben. ;)




--------------------------------------
thrash {a} gmx {pkt} net
pgp-id: 0x71DEEF0C
Zum Posten von PHP- oder Java-Code bitte der Übersicht wegen den HTML-Tag <pre> ... </pre> und/oder <code> ... </code> verwenden!


geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: