En C#, ¿cómo redondeo un flotador al int más cercano?¿Cómo redondeo un flotante hasta el int más cercano en C#?
Veo Math.Ceiling y Math.Round, pero estos devuelven un decimal. ¿Uso uno de estos y luego lo lanzo a un Int?
En C#, ¿cómo redondeo un flotador al int más cercano?¿Cómo redondeo un flotante hasta el int más cercano en C#?
Veo Math.Ceiling y Math.Round, pero estos devuelven un decimal. ¿Uso uno de estos y luego lo lanzo a un Int?
Si desea redondear a la más cercana int:
int rounded = (int)Math.Round(precise, 0);
También puede utilizar:
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 desea redondear hasta:
int roundedUp = (int)Math.Ceiling(precise);
Hay ambigüedad en la pregunta. El título sugiere que quiere redondear, mientras que él dice que quiere la int más cercana. Estas son 2 cosas diferentes. – mmcdole
Él quería rodear. ¿No sería eso (int) Math.Ceiling (preciso)? – configurator
@configurator, sí, eso es lo que estoy pensando. – mmcdole
(int) Math.Round (myNumber, 0)
De la parte superior de mi cabeza:
float fl = 0.678;
int rounded_f = (int)(fl+0.5f);
¿Le importa explicar la última f (0.5f)? –
Como un lanzamiento de flotante a un int se redondeará hacia abajo el +0.5 asegura que las vueltas al elenco más cercanas sean int. Sin embargo, esto solo funciona para flotadores positivos. –
Cómo puedo utilizar uno de estos entonces fundido 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.)
Lo más fácil es simplemente agregar 0.5f
y luego convertirlo en un int.
Puede convertir a un int siempre que esté seguro de que está dentro del rango de un int (Int32.MinValue a Int32.MaxValue).
Consulte http://stackoverflow.com/questions/14/whats-the-difference-between-math-floor-and-math-truncate-in-net para obtener un resumen completo. – paxdiablo