当前位置: 代码迷 >> J2SE >> java中int和float的运算结果是float类型还是double类型
  详细解决方案

java中int和float的运算结果是float类型还是double类型

热度:310   发布时间:2016-04-23 20:19:55.0
java中int跟float的运算结果是float类型还是double类型?
.........................
------解决思路----------------------
int  的结果是整数,  float  是带小数的,结果是float类型的
------解决思路----------------------
是float类型
可以用以下程序测试一下

public class Test {
public void test(float f) {
System.out.println("float");
}

public void test(double d) {
System.out.println("double");
}

public void test(int i) {
System.out.println("int");
}

public static void main(String[] args) {
Test t = new Test();
int i = 10;
float f = 10f;
t.test(f * i);
}
}


输出结果为float
------解决思路----------------------
float类型,java自动类型转换会将int类型向上转换为float类型,可以看下面的代码,如果是double类型的话则需要强制类型转换:
public static void main(String[] args) {
int i = 5;
float f =3.5f;
double b;
float f1;
f1 = i * f;//若int和float的运算结果为double,则需要像下面那样强制类型转换
b = i * f;
f1 = (float) b;
}


------解决思路----------------------
引用:
是float类型
可以用以下程序测试一下

public class Test {
public void test(float f) {
System.out.println("float");
}

public void test(double d) {
System.out.println("double");
}

public void test(int i) {
System.out.println("int");
}

public static void main(String[] args) {
Test t = new Test();
int i = 10;
float f = 10f;
t.test(f * i);
}
}


输出结果为float


抛开楼主问题本身。     这个代码可能不能作为凭据,因为重载是在编译器就确定的,而不是运行期。
  相关解决方案