float和double类型的大小为

作者&投稿:茅态 (若有异议请与网页底部的电邮联系)
float和double类型的区别~

float和double类型的区别如下:
1、变量类型不同
float属于单精度型浮点数据。
double属于双精度型浮点数据。

2、指数范围不同
float的指数范围为-127~128。
double而double的指数范围为-1023~1024
3、表达式指数位不同
float的表达式为1bit(符号位)+8bits(指数位)+23bits(尾数位)
double的表达式为1bit(符号位)+ 11bits(指数位)+ 52bits(尾数位)
4、占用内存空间不同
float占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38。
double占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308。
5、有效位数不同
float只能提供七位有效数字。
double可提供16位有效数字。
参考资料来源:百度百科——浮点型数据

一个float型实数在内存中占4个字节,即32个二进制bit,从低位到高位依次叫第0位到第31位.这32位可以分为3个部分:符号位(第31位),阶码(第30位到第23位共8位),尾数(最低23位)。
1、符号位。最高位也就是第31位表示这个实数是正数还是负数,为0表示正数或0,为1表示负数.
2、阶码。第30位到第23位这8个二进制位表示该实数转化为规格化的二进制实数后的指数与127(127即所谓偏移量)之和即所谓阶码.
规格化的二进制实数的指数只能在-127----+127之间,所以,一个float型数的最大值在+2^127即+3.4*10^38,最小值在-2^127即-3.4*10^38.
3、尾数。其他最低的23位即第22位到第0位表示该实数转化为规格化的二进制实数后小数点以后的其余各位即所谓尾数.
Double的计算与此类似,double的符号位为63位,指数为62~52位,共11位。表示的范围为-1024~1023。尾数为51~0。表示的范围为-1.7*10^308~+1.7*10^308

float:浮点型数据类型,FLOAT 数据类型用于存储单精度浮点数或双精度浮点数。此表示形式为 float 类型提供了一个大约在 -3.4E+38 和 3.4E+38 之间的范围。

double(双精度浮点型)是计算机使用的一种资料型别。它可以表示十进制的15或16位有效数字,负值取值范围为 -1.7976E+308 到 -4.94065645841246544E-324,正值取值范围为 4.94065645841246544E-324 到 1.797693E+308。

double精度高,有效数字16位,float精度7位。但double消耗内存是float的两倍,double的运算速度比float慢得多。

扩展资料

如果存储比精度更重要,请考虑对浮点变量使用 float 类型。相反,如果精度是最重要的条件,则使用 double 类型。

浮点变量可以提升为更大基数的类型(从 float 类型到 double 类型)。当对浮点变量执行算术时,通常会出现提升。此算术始终以与具有最高精度的变量一样高的精度执行。例如,请考虑下列类型声明:

float f_short;double f_long;long double f_longer;f_short = f_short * f_long;

在前面的示例中,变量f_short提升到类型 double 并且与f_long相乘;然后,结果舍入到类型 float,然后赋给f_short。

在以下示例中(使用前面示例中的声明),将以浮点(32 位)精度对变量执行算术;结果随后将提升到 double 类型:

f_longer = f_short * f_short;

double f_long;

long double f_longer;

f_short = f_short * f_long;

在前面的示例中,变量f_short提升到类型 double 并且与f_long相乘;然后,结果舍入到类型 float,然后赋给f_short。

在以下示例中(使用前面示例中的声明),将以浮点(32 位)精度对变量执行算术;结果随后将提升到 double 类型:

f_longer = f_short * f_short;

参考资料:百度百科-float

参考资料:百度百科-double



Float为单精度,内存中占4个字节,有效数位是7位(因为有正负,所以不是8位);

double为双精度,占8个字节,有效数位是16位;

拓展资料:

C语言中基本的数据类型:

  1. 首先是数据类型,有短整型(short),整型(int)和长整型(long),每种类型的差别就是所占的空间大小不一样,表示的数据最大最小不一样。

2.数据类型中,还有浮点数,用来保存小数的。

浮点数中有单精度数(float),32位长度的

3.浮点数中还有双精度数(double),64位长度的。

4.字符类型,主要是用来存储字符串数据,用char来定义。



浮点数在内存中的结构

数符±     尾数m     阶符±     阶码e

float 32位 1位符号位, 8位指数位,23位尾数为

double 64位 1位符号位,11位指数位,52位尾数位

取值范围看指数部分

float 有8位指数位,阶符1位,阶码7位,2^7=128,取值范围是-2^128—2^128,约为-3.4E38—3.4E38

同理,double的范围约是-1.7E308—1.7E308

精度看尾数部分

float尾数23位,2^23=8.3E6,最多7位有效数字,能保证6位,即float的精度为6~7位有效数字

double尾数52位,2^52=4.5E15,15位,所以double的有效位数是15~16位



float 4字节
double 8字节

Vue实践-CSS样式position/display/float属性对比使用




克什克腾旗17542465479: float和double类型的大小为 -
宥琴金钱: float:浮点型数据类型,FLOAT 数据类型用于存储单精度浮点数或双精度浮点数.此表示形式为 float 类型提供了一个大约在 -3.4E+38 和 3.4E+38 之间的范围. double(双精度浮点型)是计算机使用的一种资料型别.它可以表示十进制的15或...

克什克腾旗17542465479: c语言中double类型值的大小比较 -
宥琴金钱: 由于double浮点数的精度问题,所以在比较大小的时候,不能像int整数型那样,直接if(a==b),if(a<b),if(a>b). 要使用一个精度EPS: const double EPS = 1e-6; //一般这样子就够,但有时具体题目要考虑是否要更小的 ; if(fabs(a-b) < EPS) //判断...

克什克腾旗17542465479: FLOAT,DOUBLE的范围 -
宥琴金钱: float和double的范围是由指数的位数来决定的.float的指数位有8位,而double的指数位有11位,分布如下:float:1bit(符号位) 8bits(指数位) 23bits(尾数位) double:1bit(符号位) 11bits(指数位) 52bits(尾数位) 于是,float的指数范围...

克什克腾旗17542465479: float和double类型的大小为
宥琴金钱: printf("%d, %d", sizeof(float), sizeof(double)); 单位为字节

克什克腾旗17542465479: c语言的FLOAT 跟double的区别 -
宥琴金钱: float的有效数字是6-7位,也就是说float精确到小数点6-7位;而double的有效数字是15-16位,也就是说float精确到小数点15-16位 我们计算一些数学题 比如计算地球到月球的距离什么的等等 就可能要精确到10十几位,那时候就要用到double了;有时比较程序的大小也有可能要用到 double 由于float和double功能都一样 但double的用范围更广 所以避免出错 建议用double

克什克腾旗17542465479: C语言中浮点型float double long double 的取值范围? -
宥琴金钱: float:占四个字节,3.4*10(-38)---3.4*10(38); double:占八个字节, 1.7*10(-308)---1.7*10(308); longdouble型的范围和double都是八个字节,范围相同. 上面的括号表示幂运算.

克什克腾旗17542465479: C语言中的double和float -
宥琴金钱: double与float的区别在于在内存中存放数据时占用的内存不一样,前者8字节,后者4字节,也就是前者保存的小数位数比后者多一倍.举例说明对于1.9999996666,按照float输出,结果可能为1.999999,如果按照double可能为1.999999,这是为什么,因为C语言默认输出小数位数都取6位,这时候看起来没有区别,但是如果你进行格式控制,比如使用%.10,即小数保留10位,float输出结果为1.9999990000,而double输出结果则为1.9999996666.

克什克腾旗17542465479: java中float和double的区别... -
宥琴金钱: 精度 不同,占的字节数也不同,一般我喜欢用double的,举个例子,float a=5.0;这样写会出错,因为float型变量强制后面用f结尾,也就是这样:float a=5.0f; double a=5.0;这样就不会有错, 不过性能方面可能会差一些,小程序是没什么分别的.

克什克腾旗17542465479: 请详细介绍java中float和double的区别 -
宥琴金钱: float表示单精度浮点数在机内占4个字节,用32位二进制描述. double表示双精度浮点数在机内占8个字节,用64位二进制描述.浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分. 数符占1位二进制,表示数的正负. ...

克什克腾旗17542465479: float类型和double类型的精度各是多少 -
宥琴金钱: double 有效数字14位,float型有效数字7位,所以double精度高. double 占内存 8 字节,,float占内存 4 字节,float 省内存,运算速度快. 输入/输出格式 double 用%lf, f...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网