C语言中单精度浮点数和双精度分别如何表示?有什么差别?

作者&投稿:俎葛 (若有异议请与网页底部的电邮联系)
C语言中单精度浮点数和双精度分别如何表示?有什么差别?~

十进制要转2进制运算,再转回十进制输出,所以有截断误差。
float
有效数字
精度

7
位。
sy

double,
要用格式
%lf

C语言中,单精度浮点型为float, 双精度浮点型为double。Float为单精度,内存中占4个字节,有效数位是7位(因为有正负,所以不是8位),在我的电脑且VC++6.0平台中默认显示是6位有效数字。
double为双精度,占8个字节,有效数位是16位,但在我的电脑且VC++6.0平台中默认显示同样是6位有效数字。
二者区别:占用字节空间不同。一个float变量占用四字节,一个double类型变量,一般占用8字节。
表示范围不同。
float表示范围为-3.4E-38~3.4E+38。double 表示范围为-1.7E-308~1.7E+308。
精度不同。 float在表示十进制时,有效数字为6到7位。double在表示十进制时,有效数字为15到16位。
输入输出格式不同。在C语言中,输入输出格式化字符串,float使用%f,而double使用%lf。

C语言中,单精度浮点型为float, 双精度浮点型为double。具体区别如下:
1、 占用字节空间不同。
一个float变量占用四字节,一个double类型变量,一般占用8字节。
2、 表示范围不同。
float表示范围为-3.4E-38~3.4E+38。

double 表示范围为-1.7E-308~1.7E+308。

3、 精度不同。
float在表示十进制时,有效数字为6到7位。

double在表示十进制时,有效数字为15到16位。
4、输入输出格式不同。

在C语言中,输入输出格式化字符串,float使用%f,而double使用%lf。

C语言中,单精度浮点型为float, 双精度浮点型为double。

  1. Float为单精度,内存中占4个字节,有效数位是7位(因为有正负,所以不是8位),在我的电脑且VC++6.0平台中默认显示是6位有效数字。

  2. double为双精度,占8个字节,有效数位是16位,但在我的电脑且VC++6.0平台中默认显示同样是6位有效数字。

二者区别:

  1. 占用字节空间不同。
    一个float变量占用四字节,一个double类型变量,一般占用8字节。

  2. 表示范围不同。

    float表示范围为-3.4E-38~3.4E+38。double 表示范围为-1.7E-308~1.7E+308。

  3. 精度不同。
    float在表示十进制时,有效数字为6到7位。double在表示十进制时,有效数字为15到16位。

  4. 输入输出格式不同。
    在C语言中,输入输出格式化字符串,float使用%f,而double使用%lf。



类型 比特数 有效数字 数值范围 float 32 6-7 -3.4*10(-38)~3.4*10(38) double 64 15-16 -1.7*10(-308)~1.7*10(308) long double128 18-19 -1.2*10(-4932)~1.2*10(4932)简单来说,Float为单精度,内存中占4个字节,有效数位是7位(因为有正负,所以不是8位),在我的电脑且VC++6.0平台中默认显示是6位有效数字;double为双精度,占8个字节,有效数位是16位,但在我的电脑且VC++6.0平台中默认显示同样是6位有效数字(见我的double_float文件)还有,有个例子:在C和C++中,如下赋值语句float a=0.1;编译器报错:warning C4305: 'initializing' : truncation from 'const double ' to 'float '原因:在C/C++中(也不知道是不是就在VC++中这样),上述语句等号右边0.1,我们以为它是个float,但是编译器却把它认为是个double(因为小数默认是double),所以要报这个warning,一般改成0.1f就没事了。通常的做法,经常使用double,而不喜欢使用float
<这是复制的>

C语言中单精度浮点数和双精度分别如何表示?有什么差别?
答:C语言中,单精度浮点型为float, 双精度浮点型为double。具体区别如下:1、 占用字节空间不同。一个float变量占用四字节,一个double类型变量,一般占用8字节。2、 表示范围不同。float表示范围为-3.4E-38~3.4E+38。double 表示范围为-1.7E-308~1.7E+308。3、 精度不同。float在表示十进制时...

C语言中单精度浮点数和双精度分别如何表示?有什么差别?
答:C语言中,单精度浮点型为float, 双精度浮点型为double。Float为单精度,内存中占4个字节,有效数位是7位(因为有正负,所以不是8位),在我的电脑且VC++6.0平台中默认显示是6位有效数字。double为双精度,占8个字节,有效数位是16位,但在我的电脑且VC++6.0平台中默认显示同样是6位有效数字。二...

c语言数据类型中“双精度”“单精度”是什么意思?
答:双精度,单精度指浮点型数,双精度 叫 double 型, 单精度 float 型。double 型 用 64位2进制存放,float 型 用 32位2进制存放。所以,两种数 的 最大和最小 数值范围 不同,数的有效数字个数不同,也就是精度不同。double 型 最大数值 1.7976931348623158e+308 最小正数数值 2.22507385...

在c语言中,单精度浮点数与双精度浮点数的区别与联系。
答:在C语言中,单精度浮点数(float)和双精度浮点数(double)类型都是用来储存实数的,双精度是用记忆较多,有效数字较多,数值范围较大。两种类型对应的格式字符也有不同。 以Turbo C 为例: float 单精度浮点数使用记忆:4 字符(32 位元)有效数字:6-7 位数值范围:??3.4e38 至 ??3.4e??38...

C语言中的单精度和双精度浮点型的区别!3.14是哪种?3.14159呢?_百度知 ...
答:3.14是单精度,3.14159是双精度。两者区别如下:一、指代不同 1、单精度:是指计算机表达实数近似值的一种方式。2、双精度:此数据类型与单精度数据类型(float)相似,但精确度比float高。二、占用空间不同 1、单精度:范围在负数的时候是从 -3.402823E38 到 -1.401298E-45,而在正数的时候是从...

C语言中单双精度数表示什么意思?
答:c语言中单精度数和双精度数的本质区别在于数据类型所占的内存字节,浮点数,在C语言中使用的是IEEE754浮点数编码,该标准规定了单精度浮点数和双精度浮点数所占的内存字节,一般单精度数占用4个字节,双精度数占用8个字节,扩展双精度数占用80个字节。IEEE754具体的标准如下:格式 长度 符号位 指数...

单精度浮点型和双精度浮点型有什么区别?
答:1、单精度:应用广泛,而一些低成本的单片机系统中不具备数学运算的协处理器硬件,因而在在不同系统中,根据硬件特性对浮点数的软件实现进行了相应调整和简化。2、双精度:同数值型比,它能提供更高的数值精度,采用固定存储长度的浮点数形式,每个双精度浮点型数据占8个字节。与数值型数据不同,它的...

c语言中什么是单精度型和双精度型???各举个例子。。。
答:单精度数(float型)在32位计算机中存储占用4字节,也就是32位,有效位数为7位,小数点后6位;双精度数(double型)在32位计算机中存储占用8字节,也就是64位,有效位数为16位,小数点后15位。比如3.1415926535897932384这个小数,如果定义成float型,那么只会留下小数点后5位,也就是3.141592,如果...

什么是单、双精度浮点数
答:表示。单精度浮点数有多种表示形式:±n.n(小数形式) ±n E ±m(指数形式) ±n.n E ±m (指数形式)如果某个数的有效数字位数超过7位,当把它定义为单精度变量时,超出的部分会自动四舍五入。2、双精度浮点数(double)用8个字节(64位)存储空间,包括符号位1位,阶码11位,尾数52位。

C语言中单精度,双精度,长双精度分别是什么意思
答:国际标准浮点格式,字节越长精度越高:单精度浮点(float):4个字节长 双精度浮点(dloube):8个字节长,长双精度(long double):10个字节长。根据你C/C++程序的需要,可以定义浮点变量,精度高,占的字节也多。