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]
我有一个浮点值和一个浮点值列表,我想将浮点值与列表进行比较,找出大于浮点值且大于浮点值与列表的整数的值。
例如:
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]