问题补充说明:double d1 = (i1+i2)*1.2,为什么((i1+i2)*1,需要强制转换成float类型;float f1 = (float)((i1+i2)*1.2)比如这个int i1 = 123;int i2 = 456。不是一半浮点数的默认类型是float吗.2)的结果是double类型的
f统友素构克挥loat和double类型的区别如下:
1、变量类型不同
flo型喜用次展供at属于单精度型浮点数据。
double属于双精度型浮点数据。
2、指数范围不同
float的雷价息上指数范围为-127~128。
double盐待而double的呀而拉查各术位古指数范围为-1023~10村24
3、表达式指数位不同
float的表达式为1bit(符号位)+8bits(指数位)+23bits(尾数位)
double案牛话宣的表达式为1bit(符号位)+11bits医表前望督杆(指数位)+52bits(尾数位)
4、占用内存空间不同
floa假伯虽并千刑受铁双t占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38。
double占8个字节(64位)内存空间,其数值范围为1.级妈养死7E-308~1.7E+308阻顶集者激。
5、有效位数不同
float只能提供七位有效数字。
double可提供16位有效数字。
参考资料来源:百度百科——浮点型数据
标签:float,ouble,区别