【发布时间】:2018-08-23 18:50:20
【问题描述】:
我有双数组
var array = [2.50, 2.51, 2.41, 2,1, 1.8, 1.3, 2.9, 3.0]
我需要检查最大值
let maxTuple = array.max()
print(maxTuple)
但它打印我所有的数组 //2.50, 2.51, 2.41, 2,1, 1.8, 1.3, 2.9, 3
如果我得到当前的最大值,我想像这样
var difference = (maxTuple - 2.50) //0.5
if (difference > 0.1) {
print("> 0.1")
} else if (difference > 0.2) {
print("> 0.2")
} else if (difference > 0.3..0.5) {
print("> 0.3..0.5")
} else if (difference > 1) {
print("> 1")
}
我目前如何快速做到这一点?
【问题讨论】:
-
你的代码打印
"Optional(3.0)\n" -
array.max() 应该可以工作。你可能正在做其他事情。
-
请注意, maxTuple 是可选的,因此如果不先打开它
if let maxTuple = array.max() {就无法进行任何数学运算。顺便说一句 0.3..0.5 它不是一个有效范围,检查它是否包含你的双精度的正确方法是0.3...0.5 ~= difference -
@LeoDabus 好的,也许我可以用案例来做这个?没有如果
-
注意:您需要颠倒您的
if或switch案例的顺序,因为它会在您匹配时停止,因此difference > 0.1将在任何其他案例之前成功永远不会被检查。