在groovy中添加双倍

Kam*_*ngh 2 groovy

我定义了两个双打:

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)

为什么会这样?

dsh*_*rew 8

这是因为加法运算符从左到右工作,并且您以字符串开头,因此加法运算符在您的情况下作为连接运算符.


这个:

println "Abc3 "+abc1+abc2;
Run Code Online (Sandbox Code Playgroud)

将像这样一步一步完成:

  1. println "Abc3 "+abc1+abc2;
  2. println "Abc3 1.0E-4"+abc2;
  3. println "Abc3 1.0E-41.0E-4";

如果你想得到你期望的结果,那就这样做:

println "Abc3 " + (abc1 + abc2);
Run Code Online (Sandbox Code Playgroud)

在这里,你是优先考虑另外的前concatination.