Wie kann ich ein Double auf 5 Dezimalstellen runden, ohne DecimalFormat
?
Antworten
Zu viele Anzeigen?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);
- See previous answers
- Weitere Antworten anzeigen