Java - double和integer

时间:2017-09-28 10:06:42

标签: java

Q值。执行以下代码片段后的输出是什么?

public static void main(String[] args) {                                                                              
    double a = 6;                                                                                     
    int b = 4;
    System.out.println("The passcode is " + a + b);
}

我是这种编程语言JAVA的新手,因此根据我的理解,我认为答案应该是“

  

密码为10“

然而答案是

  

“密码为6.04”

任何人都可以帮我解决疑问吗?

3 个答案:

答案 0 :(得分:1)

实际上这是 String concatenation ,因此您将获得以下结果:

  

密码为6.04

因为该语句的评估结果为:"The passcode is "+"6.0"+"4"

因为此处doubleint值在连接中都被解释为strings,因为表达式是从左到右计算的。

为避免这种情况,您需要编写的内容是:

System.out.println("The passcode is " + (int)(a + b));

如果(a+b)double,我们会使用以下int将其投放到(int)

您可以查看 live demo here ,查看两者之间的差异。

答案 1 :(得分:0)

您可以使用:

npm install -g phantomjs

System.out.println("The passcode is " + (a + b)); //10.0
//concatenates the double value to string after manipulation

而不是

System.out.println("The passcode is " + (int)(a + b)); //10
//concatenates the int value to string after manipulation

答案 2 :(得分:-1)

变量adouble,因此6变为6.0

具有+的{​​{1}}运算符不会运行添加而是连接。 Java会自动将您的Stringdouble标量类型转换为int

您的结果如下:

String

哪个输出:

  

密码为6.04