Diferencia entre decimal, flotante y doble en .NET?


Answers

La precisión es la principal diferencia.

Float : 7 dígitos (32 bits)

Double -15-16 dígitos (64 bit)

Decimal -28-29 dígitos significativos (128 bit)

Los decimales tienen una precisión mucho mayor y se usan generalmente en aplicaciones financieras que requieren un alto grado de precisión. Los decimales son mucho más lentos (hasta 20 veces en algunas pruebas) que un doble / flotante.

Decimales y Flotadores / Dobles no se pueden comparar sin un yeso, mientras que los Flotadores y Dobles sí pueden. Los decimales también permiten la codificación o los ceros finales.

float flt = 1F/3;
double dbl = 1D/3;
decimal dcm = 1M/3;
Console.WriteLine("float: {0} double: {1} decimal: {2}", flt, dbl, dcm);

Resultado:

float: 0.3333333  
double: 0.333333333333333  
decimal: 0.3333333333333333333333333333
Question

¿Cuál es la diferencia entre decimal , float y double en .NET?

¿Cuándo alguien usaría uno de estos?




Nadie ha mencionado eso

En las configuraciones predeterminadas, Floats (System.Single) y double (System.Double) nunca usarán la verificación de desbordamiento, mientras que Decimal (System.Decimal) siempre usará la verificación de desbordamiento.

quiero decir

decimal myNumber = decimal.MaxValue;
myNumber += 1;

lanza OverflowException .

Pero estos no:

float myNumber = float.MaxValue;
myNumber += 1;

&

double myNumber = double.MaxValue;
myNumber += 1;



Los enteros, como se mencionó, son números enteros. No pueden almacenar el punto en algo, como .7, .42 y .007. Si necesita almacenar números que no son números enteros, necesita un tipo diferente de variable. Puede usar el tipo doble o el tipo flotante. Establece estos tipos de variables exactamente de la misma manera: en lugar de usar la palabra int , escribe double o float . Me gusta esto:

float myFloat;
double myDouble;

( float es la abreviatura de "punto flotante", y solo significa un número con un punto algo en el extremo).

La diferencia entre los dos está en el tamaño de los números que pueden contener. Para float , puede tener hasta 7 dígitos en su número. Para double s, puede tener hasta 16 dígitos. Para ser más precisos, este es el tamaño oficial:

float:  1.5 × 10^-45  to 3.4 × 10^38  
double: 5.0 × 10^-324 to 1.7 × 10^308

float es un número de 32 bits, y double es un número de 64 bits.

Haga doble clic en su nuevo botón para obtener el código. Agregue las siguientes tres líneas a su código de botón:

double myDouble;
myDouble = 0.007;
MessageBox.Show(myDouble.ToString());

Detenga su programa y regrese a la ventana de codificación. Cambiar esta línea:

myDouble = 0.007;
myDouble = 12345678.1234567;

Ejecute su programa y haga clic en su botón doble. El cuadro de mensaje muestra correctamente el número. Agregue otro número al final, sin embargo, y C # nuevamente se redondeará hacia arriba o hacia abajo. La moraleja es que si quieres precisión, ten cuidado con el redondeo.




Los tipos de variable Decimal, Doble y Float son diferentes en la forma en que almacenan los valores. La precisión es la principal diferencia donde float es un tipo de datos de coma flotante de precisión simple (32 bits), double es un tipo de datos de coma flotante de doble precisión (64 bits) y decimal es un tipo de datos de coma flotante de 128 bits.

Flotador: 32 bits (7 dígitos)

Doble - 64 bit (15-16 dígitos)

Decimal - 128 bit (28-29 dígitos significativos)

Más sobre ... la diferencia entre Decimal, Float y Double







flotar ~ ± 1.5 x 10-45 a ± 3.4 x 1038 -------- 7 figuras
doble ~ ± 5.0 x 10-324 a ± 1.7 x 10308 ------ 15 o 16 figuras
decimal ~ ± 1.0 x 10-28 a ± 7.9 x 1028 -------- 28 o 29 figuras




Los tipos de variable Decimal, Doble y Float son diferentes en la forma en que almacenan los valores. La precisión es la principal diferencia donde float es un tipo de datos de coma flotante de precisión simple (32 bits), double es un tipo de datos de coma flotante de doble precisión (64 bits) y decimal es un tipo de datos de coma flotante de 128 bits.

Flotante: 32 bits (7 dígitos)

Doble - 64 bit (15-16 dígitos)

Decimal - 128 bit (28-29 dígitos significativos)

La principal diferencia es que los flotantes y los dobles son tipos de coma flotante binarios y un decimal almacenará el valor como un tipo de punto decimal flotante. Por lo tanto, los decimales tienen una precisión mucho mayor y se usan generalmente en aplicaciones de cálculo monetario (financiero) o científico que requieren un alto grado de precisión. Pero en términos de rendimiento, los decimales son más lentos que los tipos dobles y flotantes.

El decimal puede representar 100% con precisión cualquier número dentro de la precisión del formato decimal, mientras que Float y Double no pueden representar con precisión todos los números, incluso los números que están dentro de sus respectivos formatos de precisión.

Decimal

En el caso de aplicaciones financieras o cálculos científicos, es mejor utilizar tipos de Decimal porque le proporciona un alto nivel de precisión y es fácil evitar los errores de redondeo.

Doble

Los tipos dobles son probablemente el tipo de datos más utilizado para valores reales, excepto el manejo de dinero.

Flotador

Se usa principalmente en bibliotecas gráficas debido a las altas demandas de potencia de procesamiento, también se usan situaciones que pueden soportar errores de redondeo.




La principal diferencia entre cada uno de estos es la precisión.

float es un número de 32-bit , double es un número de 64-bit y decimal es un número de 128-bit .






Links