如何在Swift中获得十进制数的10位?
例如:
5.50 - > 10
20.30 - > 30
29.00 - > 30
90.0 - > 90
99.01 - > 100
120.0 - > 120
答案 0 :(得分:1)
这基本上是ceil
操作,您只需移动小数点(除以10再乘以10):
func ceilTo10(_ value: Double) -> Int {
return Int(ceil(value / 10) * 10)
}
print(ceilTo10(1.20)) // 10
print(ceilTo10(90.0)) // 90
print(ceilTo10(121.1)) // 130
答案 1 :(得分:1)
使用rounded(.up)
。这是一个有用的扩展:
extension BinaryFloatingPoint {
func roundedUpNearest10() -> Self {
return (self / 10).rounded(.up) * 10
}
}
for num in [ 1.2, 1.9, 5.5, 20.3, 25.5, 29, 90, 90.1, 95.5, 99.01, 120, 121.1, 129.5 ] {
print(num, num.roundedUpNearest10())
}
输出:
1.2 10.0
1.9 10.0
5.5 10.0
20.3 30.0
25.5 30.0
29.0 30.0
90.0 90.0
90.1 100.0
95.5 100.0
99.01 100.0
120.0 120.0
121.1 130.0
129.5 130.0
如果您确实需要Int
结果,请更新扩展程序:
extension BinaryFloatingPoint {
func roundedUpNearest10() -> Int {
return Int((self / 10).rounded(.up) * 10)
}
}
答案 2 :(得分:0)
您可以ceil
使用此公式10
最接近10
示例:
print(10 * Int(ceil(95.50 / 10)))
print(10 * Int(ceil(99.1 / 10)))
print(10 * Int(ceil(99.01 / 10)))
print(10 * Int(ceil(129.5 / 10)))
print(10 * Int(ceil(121.1 / 10)))