如何在groovy的大十字架上使用Math.round?

时间:2017-11-10 10:24:30

标签: groovy

我的groovy脚本中有一个变量来收集成本值。然而,该值出现为91.7776766667,我希望它被四舍五入,因此它显示为91.8。如何更改下面的代码来执行此操作,我正在努力实现Math.round功能:

def testcost = jsongroups.xxx.cost.flatten().collect { new Math.round(BigDecimal (it)) }

log.info testcost

2 个答案:

答案 0 :(得分:1)

您可以直接在数字上使用BigDecimal.setScale(scale,roundingMode)代替Math.round()。

def testcost = jsongroups.options.cost.flatten().collect { new BigDecimal (it).setScale(1, RoundingMode.HALF_UP)}
log.info testcost

HALF_UP将.01-.04舍入到.0和.05-.09到.1。阅读RoundingMode的JavaDoc以获取其他舍入可能性,例如HALF_EVEN等。

答案 1 :(得分:0)

Groovy语言有一个round()方法,它将您的十进制数转换为特定小数位作为参数。

def decimalValue = (Double)91.7776766667
println "Value upto two decimal places >>"+decimalValue.round(2)

输出:

Value upto two decimal places >>91.78