双精度浮点数(double)是计算机使用的一种数据类型,使用64位(8字节)来存储一个浮点数。它可以表示十进制的15或16位有效数字,其可以表示的数字的绝对值范围大约是:-1.79E+308~+1.79E+308。

中文名

双精度浮点数

外文名

double

含义

是计算机使用的一种数据类型

标准

IEEE754

应用领域

计算机

范围

-1.79E+308 ~ +1.79E+308

占用空间

8个字节

简介

双精度浮点数

双精度浮点数(Double)用来表示带有小数部分的实数,一般用于科学计算变成定义变量,双精度浮点数的指数用“D”或“d”表示。

双精度浮点数科学记数法格式:±aD±c或±ad±c。[1]

精度

双精度二进制小数,使用64个比特位存储。

1位11位52位
S(符号位),编号63E(阶码位),编号62~52M(小数位),编号51~0
0表示正,1表示负1~2046任意

采用IEEE754规定的规约数的二进制表示范围为(*表示0或1都行):

规约数最小值*000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
规约数最大值*111 1111 11101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

代码

123456789101112131415#include     int main()   {       double d = 3.5;      printf("%f ", d);      printf("%p ", &d);     //此处用WinHex查看内存中f的存储是否和预想的一样system("pause");     //此处用WinHex修改d在内存中的数值,并验证是否的到预期的新浮点数printf("%f ", d);1system("pause");return 0;}

拓展延伸

单精度浮点数(float)与双精度浮点数(double)的区别如下:

(1)在内存中占有的字节数不同

  • 单精度浮点数在机内占4个字节
  • 双精度浮点数在机内占8个字节

(2)有效数字位数不同

  • 单精度浮点数有效数字7位
  • 双精度浮点数有效数字16位

(3)所能表示数的范围不同

  • 单精度浮点的表示范围:-3.40E+38~+3.40E+38
  • 双精度浮点的表示范围:-1.79E+308~+1.79E+308

(4)在程序中处理速度不同

一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快。