我想将a舍Double入到最接近的10的倍数。
Double
例如,如果数字为8.0,则四舍五入为10。如果数字为2.0,则将其四舍五入为0。
我怎样才能做到这一点?
您可以使用round()函数(将浮点数四舍五入到最接近的整数值)并应用“比例因子” 10:
round()
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)。
15.1
1.51
2.0
2
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) }