Swift 双圆到0.5
我有一个结果“1.4444”,我想把这个结果四舍五入为“1.5”。这是我使用的代码:Swift 双圆到0.5,swift,rounding,Swift,Rounding,我有一个结果“1.4444”,我想把这个结果四舍五入为“1.5”。这是我使用的代码: a.text = String(round(13000 / 9000.0)) 但这是1.0的整数,我需要1.5的整数 该代码: a.text = String(ceil(13000 / 9000.0)) 四舍五入为“2.0” 首先将1.444转换为2.888,然后四舍五入到3.0,然后除以2得到1.5。在这种情况下,0.5的分母是2(即1/2)。如果要四舍五入到最近的四分之一(0.25,0.5,0.75,0
a.text = String(round(13000 / 9000.0))
但这是1.0的整数,我需要1.5的整数
该代码:
a.text = String(ceil(13000 / 9000.0))
四舍五入为“2.0”
首先将1.444转换为2.888,然后四舍五入到3.0,然后除以2得到1.5。在这种情况下,0.5的分母是2(即1/2)。如果要四舍五入到最近的四分之一(0.25,0.5,0.75,0.00),则分母=4
我要指出的是,如果分母是2的幂,这是完美的。如果不是,比如说分母=3
,那么你可以得到奇怪的答案,比如1.9999999,而不是特定值的2。Swift 3:
extension Double {
func round(nearest: Double) -> Double {
let n = 1/nearest
let numberToRound = self * n
return numberToRound.rounded() / n
}
func floor(nearest: Double) -> Double {
let intDiv = Double(Int(self / nearest))
return intDiv * nearest
}
}
let num: Double = 4.7
num.round(nearest: 0.5) // Returns 4.5
let num2: Double = 1.85
num2.floor(nearest: 0.5) // Returns 1.5
Swift 2:
extension Double {
func roundNearest(nearest: Double) -> Double {
let n = 1/nearest
return round(self * n) / n
}
}
let num: Double = 4.7
num.roundNearest(0.5) // Returns 4.5
乘以2,四舍五入,然后除以2。对不起,不明白,你能看到我吗?请给我结果1。0@Tzahi 1.4 * 2 = 2.8. 四舍五入(2.8)=3.0。3.0/2=1.5乘以2,得到1.8888。。。。四舍五入,得3.0分。除以2,得到1.5。Swift 3的例子很好,谢谢你,但是你能告诉我如何将它改为总是四舍五入吗?i、 e..let num:Double=1.85 num.round(最接近:0.5)//返回2.0,但我想返回1.5!!!那将是另一个问题。。。但我更新了我的答案;-)那太好了,谢谢你,但最后我发现了地板的功能,我还是设法解决了:)
extension Double {
func roundNearest(nearest: Double) -> Double {
let n = 1/nearest
return round(self * n) / n
}
}
let num: Double = 4.7
num.roundNearest(0.5) // Returns 4.5