float和double类型的大小为
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
浮点数在内存中的结构
数符± 尾数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位
2012-02-04
double 8字节
Vue实践-CSS样式position/display/float属性对比使用