我的groovy脚本中有一个变量来收集成本值。然而,该值出现为91.7776766667,我希望它被四舍五入,因此它显示为91.8。如何更改下面的代码来执行此操作,我正在努力实现Math.round功能:
def testcost = jsongroups.xxx.cost.flatten().collect { new Math.round(BigDecimal (it)) }
log.info testcost
答案 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