9个回答
2019-01-06
展开全部
我觉得这个跟java的类型转换有关,java的基本类型存在自动提升为大的类型,这个99.9是浮点数,9是整数,这个表达式的结果会被提升为浮点数。所以输出9.0。
不知道是否理解对了。
不知道是否理解对了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先,需要弄清楚两个知识点:
运算符的优先级;
三目运算符,由?:组成,即(布尔表达式 ? 结果一 : 结果二),其实就是if else的简写。当 ? 前的表达式为true时,返回结果一;表达式结果为false时,返回结果二。
再看执行过程:先执行(x>4 ? 99.9 : 9)这段三目运算的代码,返回结果为9,再执行"value is "+这段,为字符串连接,就可得出返回结果为 value is 9 。
追问
可是答案是9.0而不是9呀
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
追问
为什么是9.0而不是9呢
追答
sorry,当时看到了,但是没仔细考虑这个问题;下面是我的理解,希望对你有所帮助。
因为99.9和9的数据类型不一样,一个是float,一个是int 。
三元运算符有这样的特性,当出现上述情况时,会返回精度高的数据类型。
网页链接 可以参考这个博客的内容。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2019-01-07
展开全部
根据判断知道 x>4 是 false, 那就只能输出后面的那个数字,又因为前面的 99.9 是浮点类型的,所以 9 会被转成浮点来计算,所以最后的输出是 9.0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |