黑马程序员技术交流社区
标题:
为什么4<3?99.0:9会输出9.0
[打印本页]
作者:
-律-
时间:
2014-12-23 00:40
标题:
为什么4<3?99.0:9会输出9.0
如题所示
作者:
青衫禅客
时间:
2014-12-23 01:07
这个要看你完整代码了,也许是哪块有个类型提升
作者:
-律-
时间:
2014-12-23 01:18
青衫禅客 发表于 2014-12-23 01:07
这个要看你完整代码了,也许是哪块有个类型提升
在main方法下
直接打印(4<3?99.0:9)
作者:
abathe
时间:
2014-12-23 10:12
本帖最后由 abathe 于 2014-12-23 10:16 编辑
class Demo
{
public static void main(String[] args)
{
System.out.println(4<3?99:9); //结果9
System.out.println(2<3?99:9); //结果99
System.out.println(4<3?99.0:9); //结果9.0
System.out.println(2<3?99:9.0); //结果99.0
}
}
复制代码
测试了以上四种可能,无论判断的结果为ture还是false,结果都会被提升为两者中较高等级的数据类型,这个应该是二元运算内部自动提升的
作者:
青衫禅客
时间:
2014-12-24 13:32
-律- 发表于 2014-12-23 01:18
在main方法下
直接打印(4
系统会自动比较一下两个数类型,double比int的长度范围大,所以以double为主。还有一种情况是char类型和数值常量比较,当数值常量的大小在char类型的长度范围之内,就会自动转换为char类型的结果
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2