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);