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”
任何人都可以帮我解决疑问吗?
答案 0 :(得分:1)
实际上这是 String
concatenation ,因此您将获得以下结果:
密码为6.04
因为该语句的评估结果为:"The passcode is "+"6.0"+"4"
。
因为此处double
和int
值在连接中都被解释为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)
变量a
是double
,因此6
变为6.0
。
具有+
的{{1}}运算符不会运行添加而是连接。 Java会自动将您的String
和double
标量类型转换为int
。
您的结果如下:
String
哪个输出:
密码为6.04