在 groovy 中加倍

Adding double in groovy

我定义了两个双打:

double abc1 = 0.0001;
double abc2 = 0.0001;

现在如果我打印它们:

println "Abc1 "+abc1;
println "Abc2 "+abc2;

它returns:

Abc1 1.0E-4

Abc2 1.0E-4

而如果我添加它们:

println "Abc3 "+abc1+abc2;

它returns:

Abc3 1.0E-41.0E-4

而不是:

Abc3 2.0E-4

为什么会这样?

这是因为加法运算符从 从左到右 并且您从字符串开始,因此加法运算符作为 concatenation operator in your case.


这个:

println "Abc3 "+abc1+abc2;

会像这样一步步完成:

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

解决方案

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

println "Abc3 " + (abc1 + abc2);

这里你优先添加连接之前。

你的方法不起作用的原因是加法运算是从左到右进行的。您可以改为这样做:

println "answer "+(double)(abc1+abc2);