Groovy:比较浮点值,找出更大的值

Groovy: Compare float values and find out greater value

我有一个浮点值和一个浮点值列表,我想将浮点值与列表进行比较,找出大于浮点值且大于浮点值与列表的整数的值。

例如:

cv = 1.5

av = [1.1,1.5,1.7,1.9,1.11,2.1,2.5]

当前代码:

versions = av.findAll {
def isVersionGreater
it.indexed().any { i, v ->
if (cv[i] == v) return false
isVersionGreater = v > (cv[i] ?: 0)
return true
}
return isVersionGreater
}
versions.removeAll { it[0] > cv[0] }
versions.collect { it.join('.') }

打印 [1.7,1.9,1.11],但我不想要 1 的值,我只想比较并找出 [2.1,2.5] 而不是其他值。

注意:我收集的变量 av 和 cv 如下


av = output2.tokenize().collect { it.tokenize('.').collect { it as int } } 

cv = output.tokenize().collect { it.tokenize('.').collect { it as int } }.first()

有人可以使用 groovy 帮助我实现这个目标吗?

使用<=代替>

versions.removeAll { it[0] <= cv[0] }
print versions.collect { it.join('.') }

意思是从it中删除所有第一个值小于或等于cv的第一个值的地方。

输出:

[2.1, 2.5]