条件运算符if ?: java

[复制链接]
查看11 | 回复2 | 2008-12-9 16:09:08 | 显示全部楼层 |阅读模式
public class Conditional {
/**
* @param args
*/
public static void main(String[] args) {
intx=4;
System.out.println("valueis"+ ((x>4) ? 99.9 :9));
}
}
以上程序怎么答案为9.0呢,明明该是9 啊。但我如果把99.9改为99答案又变成9了这是怎么回事啊,

回复

使用道具 举报

千问 | 2008-12-9 16:09:08 | 显示全部楼层
为了防止精度丢失,程序会自动提高精度,double型的精度大于整型,所以整型9会自动提升到double型 9.0...
回复

使用道具 举报

千问 | 2008-12-9 16:09:08 | 显示全部楼层
?:两个变量的类型要一样的如果不一样的话,系统会自动将低变量转化问高变量...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行