【发布时间】:2018-08-19 01:27:49
【问题描述】:
我有这个简单的代码,在得到double 类型的结果之前,我需要了解为什么等式的右边被强制转换为整数。
这里的答案是1.0 所以我不明白为什么不是1.5。
int x = 2;
double y = 1 + 1/x;
System.out.println(y);
【问题讨论】:
-
右侧没有转换为
Integer,它已经是一个整数。演员表只发生在等式的最后。我想另一种说法是自动转换中的操作顺序和优先级很重要。所以转换发生在=,而其他操作/和+具有更高的优先级并先执行,对int进行操作。 -
好的,我现在知道了。谢谢。