2010-08-02 6 views
10

J'ai une variable comme float num = (x/y); Je dois arrondir le résultat chaque fois que num donne un résultat comme 34.443. Alors, comment faire cela dans C#?Comment arrondir un nombre

Répondre

25

Utilisation Math.Ceiling:

Retourne le plus petit entier supérieur inférieur ou égal au nombre spécifié

de noter que cela fonctionne sur double, donc si vous voulez un flotteur (ou un entier) vous aurez besoin de lancer.

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

Si les deux '' x' et y' sont des nombres entiers, ils seront tronqués. – Zaz

+0

@Josh: Vrai. J'ai supposé que l'OP avait déjà des flotteurs puisque le résultat était de 34.443, mais ça vaut vraiment la peine de l'appeler explicitement. – Quartermeister

+0

Plafond ou plancher selon l'exigence ... –

2

Utilisez Math.Ceiling si vous voulez que le nombre entier supérieur à la réponse, ou si vous voulez Math.Floor un nombre entier inférieur à la réponse.

Exemple

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

Utilisez selon nécessaire pour votre cas.

+0

+1 gentil ......... –

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

Si nous utilisons la fonction Math.Round, nous pouvons spécifier non d'endroits à arrondir.

+0

'Math.Ceiling' -" Je dois arrondir ** haut ** ... " – Zaz

1

si vous avez besoin 2 décimales, yo peut utiliser quelque chose comme:

float roundedvalue = (float)Math.Ceiling(x*100/y) /100; 
float roundedvalue = (float)Math.Floor(x*100/y) /100; 
Questions connexes