• 1.摘要
  • 2.基本信息
  • 3.主要内容
  • 4.应用领域
  • 5.浮点类型

FLOAT

2
用于存储单精度浮点数或双精度浮点数

FLOAT即单精度浮点型数据类型,数据类型用于存储单精度浮点数或双精度浮点数。

FLOAT具有4个字节,包括一个符号位、一个8位excess-127二进制指数和一个23位尾数,尾数表示一个介于1.0和2.0之间的数。由于尾数的高顺序位始终为1,因此它不是以数字形式存储的。

基本信息

  • 范围

    -3.4E+383.4E+38

  • 使用格式

    IEEE格式

  • 中文名称

    浮点型

  • 作用

    用于存储单精度浮点数或双精度浮点数

  • 字节数

    4个

  • 外文名

    float

主要内容

1/3

可根据应用程序的需求将变量声明为 float 或 double。这两种类型之间的主要差异在于它们可表示的基数、它们需要的存储以及它们的范围。下表显示了基数与存储需求之间的关系。

应用领域

应用案例

在 C 和 C++ 中,如下赋值语句:

1

float a=0.1; 

编译器报错:warning C4305: 'initializing' : truncation from 'const double ' to 'float '

原因:在 C/C++ 中,上述语句等号右边 0.1,认为是个 float,但是编译器却把它认为是个 double(因为小数默认是 double),所以要报这个 warning,一般改成0.1f就没事了。

浮点类型

类型

有效位

字节数

float

6 – 7

4

double

15 – 16

8

浮点变量由尾数(包含数字的值)和指数(包含数字的数量级)表示。

下表显示了分配给每个浮点类型的尾数和指数的位数。任何 float 或 double 的最高有效位始终是符号位。如果符号位为 1,则将数字视为负数;否则,将数字视为正数。

浮点变量由尾数(包含数字的值)和指数(包含数字的数量级)表示。

下表显示了分配给每个浮点类型的尾数和指数的位数。任何 float 或 double 的最高有效位始终是符号位。如果符号位为 1,则将数字视为负数;否则,将数字视为正数。

指数和尾数

类型

指数长度

尾数长度

float

8 位

23 位

double

11 位

52 位

由于指数是以无符号形式存储的,因此指数的偏差为其可能值的一半。对于 float 类型,偏差为 127;对于 double 类型,偏差为 1023。您可以通过将指数值减去偏差值来计算实际指数值。

存储为二进制分数的尾数大于或等于 1 且小于 2。对于 float 和 double 类型,最高有效位位置的尾数中有一个隐含的前导 1,这样,尾数实际上分别为 24 和 53 位长,即使最高有效位从未存储在内存中也是如此。