我定义了两个双打:
double abc1 = 0.0001;
double abc2 = 0.0001;
Run Code Online (Sandbox Code Playgroud)
现在,如果我打印它们:
println "Abc1 "+abc1;
println "Abc2 "+abc2;
Run Code Online (Sandbox Code Playgroud)
它返回:
Abc1 1.0E-4
Abc2 1.0E-4
Run Code Online (Sandbox Code Playgroud)
如果我添加它们:
println "Abc3 "+abc1+abc2;
Run Code Online (Sandbox Code Playgroud)
它返回:
Abc3 1.0E-41.0E-4
Run Code Online (Sandbox Code Playgroud)
而不是:
Abc3 2.0E-4
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
这是因为加法运算符从左到右工作,并且您以字符串开头,因此加法运算符在您的情况下作为连接运算符.
这个:
println "Abc3 "+abc1+abc2;
Run Code Online (Sandbox Code Playgroud)
将像这样一步一步完成:
println "Abc3 "+abc1+abc2;println "Abc3 1.0E-4"+abc2;println "Abc3 1.0E-41.0E-4";如果你想得到你期望的结果,那就这样做:
println "Abc3 " + (abc1 + abc2);
Run Code Online (Sandbox Code Playgroud)
在这里,你是优先考虑的另外的前concatination.
| 归档时间: |
|
| 查看次数: |
591 次 |
| 最近记录: |