我在将数字四舍五入到最接近的10时有一个小问题
var finalResult = Int(textfield.text!)
let x = Double(finalResult)
let y = x.rounded() / 5
print(x) // 18.0
print(y) // 3.6
我希望结果像这样
// if x = 6.0 ... 14.0
// y = 2
// if x = 15.0
// y = 3
// if x = 16.0 ... 24.0
// y = 4
// if x = 25.0
// y = 5
// if x = 26.0 ... 34.0
// y = 6
我希望我提出了一个使我和其他人受益的问题
我希望我已经很好地解释了这个问题
答案 0 :(得分:0)
您需要使用round function和x % 5 == 0
检查。
let values = (6...100).map({ Double($0) })
func round(_ value: Double, toNearest: Double) -> Double {
return round(value / toNearest) * toNearest
}
for x in values {
if x.truncatingRemainder(dividingBy: 5) == 0 {
print("x - \(x), y - \(Int(x / 5))")
} else {
let rounded = round(x, toNearest: 10.0)
print("x - \(x), y - \(Int(rounded / 5))")
}
}