我对此很陌生,因为您可能知道,请向初学者澄清以下代码是如何缩小输出-2.50作为答案的。在整数 - >双倍的情况下,我仍然对促销/降级主题感到困惑。Java原始类型推广混淆
int x = 5;
double y = 2.5;
double q = x/10 - y;
System.out.printf("%.2f\n",q);
我看到它的方式是:双Q = 5.0(X升为从int一倍)/ 10.0 - 2.5 这将是等于0.5 - 因为“%2.5 = -2.00(2位小数.2f \ n“)
为什么正确答案-2.50而不是-2.00?
提示..分区比减法具有更高的优先级。分部首先发生(并且其值为0),然后从0中减去“2.5”。 – TheLostMind
@TheLostMind我明白分部在减法之前出现,但为什么分区的值为0 –
这在JLS中提到过。你首先将整数除以整数,然后在必要时进行转换 – TheLostMind