Main Content

double

Arreglo de doble precisión

Descripción

double es el tipo de datos (clase) numéricos predeterminado en MATLAB® y proporciona precisión suficiente para la mayoría de tareas computacionales. Las variables numéricas se guardan automáticamente como valores de punto flotante de doble precisión de 64 bits (8 bytes). Por ejemplo:

x = 10;
whos x
  Name      Size            Bytes  Class     Attributes

  x         1x1                 8  double  

MATLAB construye el tipo de datos double de acuerdo con el estándar 754 del IEEE® para doble precisión. El rango para un número negativo del tipo double está entre -1,79769 x 10308 y -2,22507 x 10-308 y el rango para números positivos está entre 2,22507 x 10-308 y 1,79769 x 10308.

Para obtener más información sobre los valores de punto flotante de precisión simple o de doble precisión, consulte Números de punto flotante.

Creación

Usted crea automáticamente un arreglo de doble precisión cuando asigna un escalar numérico o un arreglo a una variable, como A = [1 2 3; 4 5 6]. La variable A tiene el tipo double. Para obtener más información sobre crear y combinar arreglos, consulte Crear, concatenar y ampliar matrices. Además, las operaciones en variables de doble precisión y funciones con entrada de doble precisión normalmente devuelven valores de doble precisión, como + o sin.

Si tiene un arreglo de un tipo de datos diferente, como single o int8, puede convertir este arreglo a doble precisión utilizando la función double, que luego guarda el arreglo con mayor precisión para cálculos posteriores.

Descripción

ejemplo

Y = double(X) convierte los valores en X a doble precisión.

Argumentos de entrada

expandir todo

Arreglo de entrada, especificado como escalar, vector, matriz o arreglo multidimensional.

Tipos de datos: single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string

Ejemplos

contraer todo

De forma predeterminada, los números de MATLAB son del tipo de datos double. Puede utilizar la función class para verificar el tipo de una variable.

x = 100;
xtype = class(x)
xtype = 
'double'

Use la función double para convertir variables que no sean de doble precisión al tipo double.

y = true
y = logical
   1

ydouble = double(y);
ynewtype = class(ydouble)
ynewtype = 
'double'

Compare los rangos de los valores numéricos en doble precisión con los rangos para precisión simple.

Use las funciones realmin y realmax para mostrar los valores positivos mínimos y máximos que pueden representarse en doble precisión.

doublemin = realmin('double')
doublemin = 2.2251e-308
doublemax = realmax('double')
doublemax = 1.7977e+308

Ahora muestre los valores positivos mínimos y máximos que pueden representarse en precisión simple. El rango de valores es menor en comparación con la doble precisión, pero requiere menos memoria.

singlemin = realmin('single')
singlemin = single
    1.1755e-38
singlemax = realmax('single')
singlemax = single
    3.4028e+38

La función eps devuelve una medida de lo cerca que pueden estar los números en doble precisión frente a precisión simple. Muestre la distancia desde el número 1,0 al siguiente número de doble precisión mayor.

doubleeps = eps('double')
doubleeps = 2.2204e-16

Ahora muestre la distancia desde 1,0 al siguiente número de precisión simple mayor. Los valores de doble precisión están más cerca unos de otros, ya que puede representar más números.

singleeps = eps('single')
singleeps = single
    1.1921e-07

Sugerencias

  • Cuando crea una clase, sobrecargue double cuando tenga sentido convertir un objeto de esa clase a un valor de doble precisión.

  • Convertir un arreglo char a un tipo numérico producirá un arreglo de los valores de código Unicode® correspondientes. El texto de las cadenas no se convierte de esta forma. Convertir una cadena que no representa un valor numérico único a double producirá un resultado NaN. Para obtener más información, consulte Valores Unicode y ASCII.

Capacidades ampliadas

Generación de código de GPU
Genere código CUDA® para GPU NVIDIA® mediante GPU Coder™.

Historial de versiones

Introducido antes de R2006a