2010-08-02 19 views
10

Ich habe Variable wie float num = (x/y); Ich muss das Ergebnis abrunden, wenn num Ergebnisse wie 34.443 gibt. Also wie geht das in C#?Wie man eine Zahl aufrundet

Antwort

25

Verwendung Math.Ceiling:

Gibt die kleinste ganze Zahl größer als oder gleich der angegebenen Anzahl

Beachten Sie, dass dies auf Doppel funktioniert, also wenn Sie einen Schwimmer (oder eine ganze Zahl) Du wirst wirken müssen.

float num = (float)Math.Ceiling(x/y); 
+2

Wenn beide 'X' und 'Y' ganze Zahlen sind, werden sie abgeschnitten. – Zaz

+0

@Josh: Wahr. Ich nahm an, dass das OP bereits Floats hatte, da das Ergebnis 34,443 war, aber es lohnt sich, das explizit zu erwähnen. – Quartermeister

+0

Decke oder Boden nach der Anforderung ... –

2

Verwenden Math.Ceiling, wenn Sie die ganze Zahl größer ist als die Antwort wollen, oder Math.Floor, wenn Sie eine ganze Zahl kleiner als die Antwort wollen.

Beispiel

Math.Ceiling(3.46) = 4; 
Math.Floor(3.46) = 3; 

Nutzung je nachdem, was für Ihren Fall erforderlich ist.

+0

+1 schön ......... –

5
float num = (x/y); 
float roundedValue = (float)Math.Round(num, 2); 

Wenn wir Math.Round Funktion verwenden, können wir keine Orte angeben, die abgerundet werden sollen.

+0

'Math.Ceiling' -" Ich muss Runde ** up ** ... " – Zaz

1

wenn Sie 2 Nachkommastellen benötigen, yo so etwas wie verwenden:

float roundedvalue = (float)Math.Ceiling(x*100/y) /100; 
float roundedvalue = (float)Math.Floor(x*100/y) /100; 
Verwandte Themen