条件运算符if ?: java

来源:百度知道 编辑:UC知道 时间:2024/06/13 17:51:31
public class Conditional {

/**
* @param args
*/
public static void main(String[] args) {
int x=4;
System.out.println("value is"+ ((x>4) ? 99.9 :9));

}

}
以上程序怎么答案为9.0呢,明明该是9 啊。但我如果把99.9改为99答案又变成9了这是怎么回事啊,

为了防止精度丢失,程序会自动提高精度,double型的精度大于整型,所以整型9会自动提升到double型 9.0

?:两个变量的类型要一样的
如果不一样的话,系统会自动将低变量转化问高变量