2010-08-02 17 views
10

Tengo una variable como float num = (x/y); Necesito redondear el resultado cada vez que num da un resultado como 34.443. Entonces, ¿cómo hacer esto en C#?Cómo redondear un número

Respuesta

25

Uso Math.Ceiling:

Devuelve el menor entero mayor o igual que el número especificado

Tenga en cuenta que esto funciona en dobles, así que si quieres un flotador (o un número entero) necesitarás lanzar.

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

Si tanto 'x' y y' son enteros, se trunca'. – Zaz

+0

@Josh: cierto. Supuse que el OP ya tenía flotadores ya que el resultado fue 34.443, pero definitivamente vale la pena llamarlo explícitamente. – Quartermeister

+0

Techo o piso según el requisito ... –

2

Uso Math.Ceiling si desea que el número entero superior a la respuesta, o Math.Floor si quieres un entero menor que la respuesta.

Ejemplo

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

Utilice el que se requiere para su caso.

+0

+1 agradable ......... –

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

Si utilizamos la función Math.Round podemos especificar el número de lugares a redondear.

+0

'Math.Ceiling' -" Necesito redondear ** arriba ** ... " – Zaz

1

si necesita 2 decimales, yo puede usar algo como:

float roundedvalue = (float)Math.Ceiling(x*100/y) /100; 
float roundedvalue = (float)Math.Floor(x*100/y) /100; 
Cuestiones relacionadas