如何在Swift中将Int舍入到最接近的10?

时间:2019-06-11 07:54:18

标签: swift int double

我在将数字四舍五入到最接近的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

我希望我提出了一个使我和其他人受益的问题

我希望我已经很好地解释了这个问题

1 个答案:

答案 0 :(得分:0)

您需要使用round functionx % 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))")
    }
}