int i = 90;
System.out.println(i < 100 ? i : 100);
System.out.println(i < 100 ? i : 100.0);
上面的代码会输出 :
90
90.0
----------------------------------------------------------------------------------
原因是100.0是double类型的,i是int型的 ":" 运算符两边类型不一致时会自动的进行类型转换,所以表达式的值就变成90.0了。