redondear numero flotante float entero decimales convertir como c# .net rounding

c# - numero - entero a float



¿Cómo redondeo un flotante hasta el int más cercano en C#? (6)

¿Uso uno de estos y luego lo lanzo a un Int?

Sí. No hay problema haciendo eso. Los decimales y los dobles pueden representar enteros exactamente, por lo que no habrá error de representación. (No obtendrá un caso, por ejemplo, donde Round devuelve 4.999 ... en lugar de 5.)

En C #, ¿cómo redondeo un flotador al int más cercano?

Veo Math.Ceiling y Math.Round, pero estos devuelven un decimal. ¿Uso uno de estos y luego lo lanzo a un Int?


(int) Math.Round (myNumber, 0)


La parte superior de mi cabeza:

float fl = 0.678; int rounded_f = (int)(fl+0.5f);


Lo más fácil es simplemente agregar 0.5f a él y luego convertirlo a un int.


Puede convertir a un int siempre que esté seguro de que está dentro del rango de un int (Int32.MinValue to Int32.MaxValue).


Si quieres redondear al int más cercano :

int rounded = (int)Math.Round(precise, 0);

También puedes usar:

int rounded = Convert.ToInt32(precise);

Que usará Math.Round(x, 0); para redondear y lanzar para usted. Se ve más ordenado, pero es ligeramente menos claro IMO.

Si quieres redondear:

int roundedUp = (int)Math.Ceiling(precise);