package com.jdc.two;
/*
* 自动“提升”的条件:
* 1.两种类型是兼容的???
* 2.目标类型的范围大小比原来类型的大
*/
public class BaseTypeChange {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
byte b=12;//字节型
char c='b';//字符型
short s=13;//短整型
int i=567;//整形
long l=343434;//长整形
float f=23.32f;//单精度浮点型
double d=3.123d;//双精度浮点型
double result=(f*b)+(l*f)+(i/c)-(s*d);//result声明成其他类型会出错,除非进行类型转换
//因为表达式中有double,double是范围最大的,所以表达式会自动转换成最大的类型double,如果去掉表达式中的d,就可以不用声明成double
//可以生成float或double(即所声明的类型要比表达式中的最大类型范围要大)
System.out.println("结果:"+result);
System.out.println((f*b)+"+"+(l*f)+"+"+(i/c)+"-"+(d*s));
}
}
自动提升
最新推荐文章于 2017-11-02 09:11:49 发布