Main Content

double

双精度数组

说明

double 是 MATLAB® 中的默认数值数据类型(类),它可为大多数计算任务提供足够的精度。数值变量自动存储为 64 位(8 字节)双精度浮点值。例如:

x = 10;
whos x
  Name      Size            Bytes  Class     Attributes

  x         1x1                 8  double  

MATLAB 根据适用于双精度的 IEEE® 754 标准来构造 double 数据类型。double 类型的负数的范围在 -1.79769×10308 到 -2.22507×10-308 之间,正数的范围在 2.22507×10-308 到 1.79769×10308 之间。

有关双精度和单精度浮点值的详细信息,请参阅浮点数

创建对象

将数值标量或数组赋给变量时,会自动创建双精度数组,例如 A = [1 2 3; 4 5 6]。变量 A 的类型为 double。有关创建和合并数组的详细信息,请参阅创建、串联和扩展矩阵。此外,对使用双精度输入的双精度变量和函数执行的运算(例如 +sin)通常返回双精度值。

如果您有不同数据类型(如 singleint8)的数组,则可以使用 double 函数将该数组转换为双精度,然后以更高的精度存储数组以供进一步计算。

描述

示例

Y = double(X)X 中的值转换为双精度。

输入参数

全部展开

输入数组,指定为标量、向量、矩阵或多维数组。

数据类型: single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string

示例

全部折叠

默认情况下,MATLAB 中的数字的数据类型为 double。可以使用 class 函数验证变量的类型。

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

使用 double 函数可将不是双精度的变量转换为 double 类型。

y = true
y = logical
   1

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

将双精度数值范围与单精度数值范围进行比较。

使用 realminrealmax 函数显示可以用双精度表示的最小和最大正值。

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

现在显示可以用单精度表示的最小和最大正值。与双精度相比,单精度值的范围更小,但需要的内存也更少。

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

eps 函数返回一个度量值,用以衡量以双精度和单精度形式表示的数字的接近程度。显示从数字 1.0 到下一个更大的双精度数字的距离。

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

现在显示从 1.0 到下一个更大的单精度数字的距离。双精度值彼此更接近,因为您可以表示更多值。

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

提示

  • 当您创建类时,如果将该类的对象转换为双精度值有意义,请重载 double

  • char 数组转换为数值类型将生成包含对应 Unicode® 代码值的数组。字符串中的文本不以这种方式转换。将不表示单个数值的字符串转换为 double 将产生 NaN 结果。有关详细信息,请参阅 Unicode 和 ASCII 值

扩展功能

GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。

版本历史记录

在 R2006a 之前推出