努力寻找一种方法来将下面数组中的数字相乘
[120.98 7, 151.99 8, 141.39 4, 137.71 7, 121.27 6, 187.29 11]
尝试使用 split 将它们按空间拆分并将它们相乘,但是遇到问题,有什么想法吗?
Ask是将逗号前的两个数字相乘。
努力寻找一种方法来将下面数组中的数字相乘
[120.98 7, 151.99 8, 141.39 4, 137.71 7, 121.27 6, 187.29 11]
尝试使用 split 将它们按空间拆分并将它们相乘,但是遇到问题,有什么想法吗?
Ask是将逗号前的两个数字相乘。
如果您的阵列与您展示的一样,这是一个问题。但是,如果您先将其设置为字符串格式,则有一个解决方案:
myArray = "[120.98 7, 151.99 8, 141.39 4, 137.71 7, 121.27 6, 187.29 11]"
myStr = myArray[2..-1] // to get rid of brackets
myStr = myStr[0..-2]
myStr = myStr.tokenize('[,]') // for parsing
println myStr
myStr.each{
//println it
first = it.split()[0].toDouble()
second = it.split()[1].toDouble()
println "$first * $second = " + first*second
}
这可能不是最好或最干净的方式,但它符合您的要求,结果如下:
[20.98 7, 151.99 8, 141.39 4, 137.71 7, 121.27 6, 187.29 11]
20.98 * 7.0 = 146.86
151.99 * 8.0 = 1215.92
141.39 * 4.0 = 565.56
137.71 * 7.0 = 963.97
121.27 * 6.0 = 727.62
187.29 * 11.0 = 2060.19
亚历克斯