我有一个输出以下内容的数组:
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())
它给了我一个错误,指出'多点'。
我的问题是如何添加所有这些数字?
答案 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())