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吗?

第1个回答  2012-05-01
java默认的浮点类型是double类型的 整型变量 i1 i2参与浮点运算会被先转换为double类型的 而且 后面的1.2也是double类型的
第2个回答  2019-12-21
1.2是double类型 你是int类型 乘以float类型 当然要强制转换了
第3个回答  2021-01-13
第4个回答  2020-12-08

第5个回答  2018-06-25
你好楼主,因为不管什么数,在计算过程中,当有任意一个数是float或者double计算的结果都为double型这是基础知识,可以看一下c语言基础上面有介绍的
相似回答