¿Cuál es la mejor manera de convertir un doublea int? ¿Se debe usar un yeso?
c#
.net
casting
type-conversion
user496949
fuente
fuente

etc.:)Respuestas:
Puede usar una conversión si desea el comportamiento predeterminado de truncar hacia cero. Alternativamente, es posible que desee utilizar
Math.Ceiling,Math.Round,Math.Flooretc - a pesar de que todavía se necesita un molde después.No olvide que el rango de
intes mucho menor que el rango dedouble. Un lanzamiento desdedoublehastaintno arrojará una excepción si el valor está fuera del rango deinten un contexto no verificado, mientras que una llamada aConvert.ToInt32(double)voluntad. El resultado de la conversión (en un contexto no verificado) está explícitamente indefinido si el valor está fuera del rango.fuente
intsiempre es de 32 bits, independientemente de si está utilizando una máquina de 32 o 64 bits.intVal = System.Convert.ToInt32(System.Math.Floor(dblVal));using System;en la parte superior del archivo, momento en el que podría serintVal = Convert.ToInt32(Math.Floor(dblVal));usingdirectivas.si usa cast, es decir,
(int)SomeDoubletruncará la parte fraccional. Es decir, siSomeDoublefuera 4.9999, el resultado sería 4, no 5. La conversión a int no redondea el número. Si quieres usar redondeoMath.Roundfuente
¿Si, Por qué no?
Usar la
Convertclase también funciona bien.fuente
Convert.ToInt32es la mejor forma de convertirfuente
La mejor manera es simplemente usar
Convert.ToInt32. Es rápido y también se redondea correctamente.¿Por qué hacerlo más complicado?
fuente
Aquí hay un ejemplo completo
Si desea redondear el número al entero más cercano, haga lo siguiente:
fuente
Creo que la mejor manera es
Convert.ToInt32.fuente
int myInt = (int) Math.Ceiling (myDouble);
fuente
Mis caminos son:
fuente
double_value = 0.1cuando desea enviarlo a una etiqueta, o algo así, y no desea ningún componente fraccional, esta es la mejor manera
si quieres con solo 2, y siempre es así
fuente