12 Stimmen

Abrunden eines Double auf 5 Dezimalstellen in Java ME

Wie kann ich ein Double auf 5 Dezimalstellen runden, ohne DecimalFormat ?

2voto

Milhous Punkte 14201
DecimalFormat roundFormatter = new DecimalFormat("########0.00000");

public Double round(Double d)
    {
        return Double.parseDouble(roundFormatter.format(d));
    }

1voto

Niger Punkte 3776
public static double roundNumber(double num, int dec) {
        return Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
}

0voto

wildriver Punkte 21

Ich bin auf der Suche nach einer Möglichkeit, meine doppelte Zahl auf zwei Dezimalstellen zu begrenzen, also weder abzuschneiden noch zu runden, auf diese Seite gestoßen. Math.Truncate gibt Ihnen den ganzzahligen Teil der doppelten Zahl und verwirft alles nach dem Dezimalpunkt, so dass 10.123456 nach dem Abschneiden zu 10 wird. Math.Round rundet die Zahl auf den nächsten ganzzahligen Wert, so dass 10,65 zu 11 und 10,45 zu 10 wird. Diese beiden Funktionen erfüllten also nicht meine Anforderungen (ich wünschte, .Net hätte beide Funktionen überladen, um das Abschneiden oder Runden auf eine bestimmte Anzahl von Dezimalstellen zu ermöglichen). Der einfachste Weg, das zu tun, was ich brauchte, ist:

//First create a random number 
Random rand = new Random();

//Then make it a double by getting the NextDouble (this gives you a value 
//between 0 and 1 so I add 10 to make it a number between 10 and 11
double chn = 10 + rand.NextDouble();

//Now convert this number to string fixed to two decimal places by using the
//Format "F2" in ToString
string strChannel = chn.ToString("F2");

//See the string in Output window
System.Diagnostics.Debug.WriteLine("Channel Added: " + strChannel);

//Now convert the string back to double so you have the double (chn) 
//restricted to two decimal places
chn = double.Parse(strChannel);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X