我想这是一个非常简单的任务,但由于我是java的新手,我觉得这很难。我一直保持-1,但是当我编译它时,输出是:1。任何人都可以解释为什么以及如何输出:1。谢谢
class Test {
public static void main (String [] args) {
double x = 3.14; //3.14
int m = (int) (x-5); //3.14 - 5 = -1.83 --> (int )-1
int k = m + m * m -m; // -1 + (-1*-1) - 1 --> -1???
System.out.println(k); // -1??
}
}
答案 0 :(得分:1)
第一行是给定的:
double x = 3.14; //3.14
第二行是截断减法的结果:
int m = (int) (x-5); //3.14 - 5 = -1.83 --> -1
此时,这只是数学。不要忘记减去负数与添加绝对值相同:
int k = m + m * m -m; // -1 + (-1*-1) - 1 --> -1 + 1 - (-1) --> 0 - (-1) --> 1
答案 1 :(得分:1)
-1 +( - 1 * -1) - ( - 1)= 1.您忘记减去负数。