groovy - 在 groovy 中添加 double

标签 groovy

我定义了两个 double :

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

为什么会这样?

最佳答案

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

这:

println "Abc3 "+abc1+abc2;

将像这样一步一步完成:
  • println "Abc3 "+abc1+abc2;
  • println "Abc3 1.0E-4"+abc2;
  • println "Abc3 1.0E-41.0E-4";


  • 解决方案

    如果你想得到你期望的结果,这样做:
    println "Abc3 " + (abc1 + abc2);
    

    在这里,您优先考虑 补充 之前连接 .

    关于groovy - 在 groovy 中添加 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30617790/

    相关文章:

    grails - 订单不符合 Grails 中的标准

    groovy - 如何从 Map 以及嵌套 Map 中按键搜索值

    groovy - 在 Groovy 中,是否有任何方法可以安全地索引到类似于安全导航操作符的集合?

    bash - 在Jenkins管道文件的shell命令中转义双引号

    kotlin - 如何在 Kotlin 中重写 text.source 目录?

    java - 避免为每条记录重新初始化 groovy shell

    unit-testing - 在 groovy 和 spock 中为不同的类运行相同的测试

    Jenkins 共享库 : "java.lang.NoSuchMethodError: No such DSL method"

    spring - 无法将对象 'org.springframework.cloud.service.BaseServiceInfo@31f7615f' 转换为类 'com.acme.oauth.SsoServiceInfo'

    jenkins - 如何使用 Jenkin 管道中的循环连接到服务器列表?