在groovy中添加双倍

时间:2015-06-03 10:42:24

标签: groovy

我定义了两个双打:

double abc1 = 0.0001;
double abc2 = 0.0001;

现在如果我打印它们:

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

它返回:

Abc1 1.0E-4

Abc2 1.0E-4

如果我添加它们:

println "Abc3 "+abc1+abc2;

它返回:

Abc3 1.0E-41.0E-4

而不是:

Abc3 2.0E-4

为什么会这样?

2 个答案:

答案 0 :(得分:8)

这是因为加法运算符从 从左到右 工作,并且您从字符串开始,因此加法运算符在您的连接运算符中起作用情况下。

这:

println "Abc3 "+abc1+abc2;

会像这样一步一步地完成:

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

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

    println "Abc3 " + (abc1 + abc2);
    

    concatination 之前,您优先 添加

答案 1 :(得分:1)

你的方法不起作用的原因是加法操作从左到右。你可以这样做:

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