一尘不染

将Double舍入到最接近的10

swift

我想将a舍Double入到最接近的10的倍数。

例如,如果数字为8.0,则四舍五入为10。如果数字为2.0,则将其四舍五入为0。

我怎样才能做到这一点?


阅读 271

收藏
2020-07-07

共1个答案

一尘不染

您可以使用round()函数(将浮点数四舍五入到最接近的整数值)并应用“比例因子” 10:

func roundToTens(x : Double) -> Int {
    return 10 * Int(round(x / 10.0))
}

用法示例:

print(roundToTens(4.9))  // 0
print(roundToTens(15.1)) // 20

在第二个示例中,15.1除以十(1.51),四舍五入(2.0),转换为整数(2),然后再乘以10(20)。

斯威夫特3:

func roundToTens(_ x : Double) -> Int {
    return 10 * Int((x / 10.0).rounded())
}

或者:

func roundToTens(_ x : Double) -> Int {
    return 10 * lrint(x / 10.0)
}
2020-07-07