1.当有若干的变量或常量参与运算时,结果的数据类型取决于参与运算的这些变量或常量的类型范围最大那个类型
如下:
public class Test
{
public static void main(String[] args)
{
int a = 1;
int b = 2;
int c = a/b;
System.out.println(c);
}
}
最后运行到结果为:0
当我们将
int c = a/b 改为 double c = a/b 后,运行得到的结合为:0.0
那么我们如何获得正确的值0.5呢?
可以如下:
double c = (double)a/b; //对 a/b的运行结果进行一个强制的类型转换,此时即可得到正确的结果 0.5
2.如下:
1)double a = 1;
int b=2;
int c = a/b;
将产生什么样的结果呢?
2)double a = 1;
int b=2;
double c = a/b;
又将产生什么结果呢?
分析:
1)a为double类型,b为int类型,double类型的范围比int类型的范围大,所以可以得出a/b的类型为double类型,当int c = a/b 时,编译时,将产生编译错误。
2)a/b为double型,c为double型,故运行时能产生正确的结果:0.5