MATLAB 用双精度或单精度格式表示浮点数,默认格式是双精度,但可以用转换函数转换为单精度。
如果某个数据没有被指定数据类型,那么 MATLAB 会用双精度浮点数来存储它。为了得到其他类型的数值类型,可以使用类型转换函数。
MATLAB 中的双精度浮点数和单精度浮点数均采用 IEEE 754 中规定的格式来定义。其表示范围、存储大小和类型转换函数如下表所示。
浮点数的数据类型和表示范围
数据类型名称
存储大小
表示范围
类型转换函数
双精度浮点数
4 字节
-1.79769 × 10308 ~+ 1.79769 ×10308
double()
单精度浮点数
8 字节
-3.40282 × 1038 ~+ 3.40282 × 1038
single()
双精度浮点数
MATLAB 按照 IEEE 754 标准构造双精度型数据。作为双精度存储的任何数据,都需要 64 位,其格式如下表所示。
双精度数格式
位
用途
63
符号,0 = 正,1 = 负
62~52
指数,偏差值为 1023
51~0
数 1.f 的小数 f
想进一步了解小数存储格式的读者,请转到《小数在内存中是如何存储的,揭秘诺贝尔奖级别的设计(长篇神文)》。
最大和最小的双精度值
MATLAB 的 realmax() 和 realmin() 函数返回能够表示的最大和最小双精度值,例如:
>