float和double类型的区别

int i1 = 123;
int i2 = 456;
double d1 = (i1+i2)*1.2;
float f1 = (float)((i1+i2)*1.2)

比如这个,为什么((i1+i2)*1.2)的结果是double类型的,需要强制转换成float类型。
不是一半浮点数的默认类型是float吗?

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位有效数字。

参考资料来源:百度百科——浮点型数据

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-02-21
  double 和 float 的区别是double精度高,有效数字16位,float精度7位。但double消耗内存是float的两倍,double的运算速度比float慢得多,C语言中数学函数名称double 和 float不同,不要写错,能用单精度时不要用双精度(以省内存,加快运算速度)。
  类型 比特数 有效数字 数值范围
  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 double 128 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位有效数字。本回答被网友采纳
第2个回答  2012-05-01
java中有这样一个规则:
只要带有小数点的数,它的默认类型就是dobule类型
如: num=2.4;//这个num的数据类型是double
num1=2.4f;//那么这个num1的数据类型就是float类型
拿你的例子来说:
d1 = (i1+i2)*1.2;//这一步,d1的默认数据类型是:double
当用float类型的数据接收的时候,就需要强制转化-->把d1这个double类型的数据强制转化为flaot类型.
希望能帮到你,我说的不明白的话,再问
第3个回答  2012-05-01
float是单精度浮点型,double是双精度浮点型。float到double不需要转换,编译会自动进行转化。但从double到float就需要强制转换。不过没有特殊状况最好不要这样做,因为这样可能会的到不是你想要的结果。
第4个回答  推荐于2017-10-12
默认的浮点数都是double 只有在数组后边加上f才是 float的
float f=12.2f;
这是定义一个float类型的数据本回答被提问者采纳

c语言float和double的区别
c语言float和double的区别如下:1、精度不一样,float是单精度,double是双精度;2、表示小数的范围不一样,double能表示的范围比float大;3、double在内存中,占8个字节,float在内存中,占4个字节。%f默认保留6位小数,不足位以0补齐,超过六位按四舍五入的方法保留6位,若想输出指定位数,在格式化...

float和double有什么区别
1、变量类型不同 float属于单精度型浮点数据。double属于双精度型浮点数据。2、指数范围不同 float的指数范围为-127~128。double而double的指数范围为-1023~1024 3、表达式指数位不同 float的表达式为1bit(符号位)+8bits(指数位)+23bits(尾数位)double的表达式为1bit(符号位)+ 11bits(指数位...

float和double的区别?
一、主体不同 1、 long:表示一种长整型数据。2、float:浮点型数据类型 3、double:双精度浮点数据型。二、类型不同 1、 long:默认为有符号长整型,含4个字节。2、float:用于存储单精度浮点数或双精度浮点数。3、double:表示十进制的15或16位有效数字。三、取值范围不同 1、 long:取值范围为...

c语言中double和float的区别
C语言中double和float的区别:1. 精度不同 float: 浮点数类型,单精度浮点数,遵循IEEE 754标准。通常占用4个字节内存空间。其数值范围较小,可以表示大约±1E±38范围内的正数或负数。由于位数较少,精度相对较低。double: 双精度浮点数类型。同样遵循IEEE 754标准。通常占用8个字节内存空间。它可以...

float和double类型的区别
float和double类型的区别 在计算机编程中,float和double都是用于表示浮点数的数据类型,但它们之间存在明显的区别。精度不同 float类型通常被称为单精度浮点数,它表示的数值范围较小,但计算速度相对较快。而double类型被称为双精度浮点数,它能表示的数值范围更大,精度更高。这意味着在处理涉及较大数值...

double和float的区别
double和float的区别:两者变量类型不同、两者指数范围不同、两者表达式指数位不同。1、两者变量类型不同 float属于单精度型浮点数据。double属于双精度型浮点数据。2、两者指数范围不同 float的指数范围为-127~128。double的指数范围为-1023~1024。3、两者表达式指数位不同 float的表达式为1bit(符号位)...

double和float的区别
1、数据类型的长度不同:在C语言中,float类型占用4个字节(32位),而double类型占用8个字节(64位)。这意味着double类型可以表示比float类型更大范围的数字,并且可以提供更高的精度。2、精度不同:double类型具有比float类型更高的精度,使用了更多的位数来表示数字。float类型的精度是6-7位有效数字...

float和double的区别
float和double的主要区别 在计算机编程中,float和double都是用于表示浮点数的数据类型,但它们之间存在明显的差异。1. 精度不同 float是单精度浮点数,通常占用32位内存空间,提供约7至8位的十进制精度。而double是双精度浮点数,通常占用64位内存空间,提供约15至16位的十进制精度。因此,double的精度远...

float和double类型的区别
float和double类型的区别 在计算机编程中,float和double都是用于表示浮点数的数据类型,但它们之间存在明显的区别。精度不同 float类型通常表示单精度浮点数,而double类型表示双精度浮点数。double类型相比float类型,具有更高的精度,能够表示更大范围的数值,并且在小数部分的表示上更为精确。存储空间不同 ...

float和double的区别是什么?
1、代表的数据类型不同 f代表单精度浮点型数据(float),%lf代表双精度浮点型数据(double)。2、有效数字位数不同 单精度浮点数有效数字保证6位,部分7位,双精度浮点数有效数字保证15位,部分16位。3、所能表示数的范围不同 单精度浮点的表示范围:-3.40E+38 ~ +3.40E+38,双精度浮点的表示...

相似回答