如何总结数组中的所有数字

时间:2018-02-04 13:56:13

标签: groovy

我有一个输出以下内容的数组:

charges = [5.00, 26.00, 8.00, 4.00, 4.00, -8.00, 54.00, 52.48]

当我尝试用这个来执行总和时:

charges.sum()

它给了我:

5.0026.008.004.004.00-8.0054.0052.48

我假设我需要将它从字符串转换为浮点数,所以我做了:

Float.valueOf((String) charges.sum())

它给了我一个错误,指出'多点'。

我的问题是如何添加所有这些数字?

3 个答案:

答案 0 :(得分:2)

如果您的列表实际上是字符串,则可以使用sum()的关闭表单快速完成转换。

charges.sum { it.toBigDecimal() }

答案 1 :(得分:0)

目前还不清楚你的列表中有什么,看起来你的列表中的条目实际上是字符串(因为sum连接它们),或者是打印字符串值的东西(有一个toString方法,它返回一个显示值的字符串)所以你认为它是数字,即使它不是)。它们绝对不是数字,因此在求和之前将它们转换为数字类型:

charges.collect { new BigDecimal(it.toString()) }.sum()

(您的代码正在做的是将字符串值连接在一起,然后将其转换为数字类型。)

答案 2 :(得分:-2)

您必须删除演员表(String)

Float.valueOf(charges.sum())
相关问题