四舍五入到 0.5
round double to 0.5
我有一个结果“1.444444”,我想将这个结果四舍五入为“1.5”这是我使用的代码:
a.text = String(round(13000 / 9000.0))
但这四舍五入为“1.0”,我需要四舍五入为“1.5”
和这段代码:
a.text = String(ceil(13000 / 9000.0))
四舍五入为“2.0”
x = 13000 / 9000.0;
denominator = 2;
a.text = String(round(x*denominator )/denominator );
先把1.444换算成2.888,然后四舍五入到3.0再除以2得到1.5。在这种情况下,0.5 的分母是 2(即 1/2)。如果你想四舍五入到最近的四分之一(0.25,0.5,0.75,0.00),那么分母=4
我应该指出,如果分母是 2 的幂,这将完美运行。如果不是,请说 denominator=3
,那么对于特定值,您可能会得到奇怪的答案,例如 1.99999999 而不是 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
我有一个结果“1.444444”,我想将这个结果四舍五入为“1.5”这是我使用的代码:
a.text = String(round(13000 / 9000.0))
但这四舍五入为“1.0”,我需要四舍五入为“1.5”
和这段代码:
a.text = String(ceil(13000 / 9000.0))
四舍五入为“2.0”
x = 13000 / 9000.0;
denominator = 2;
a.text = String(round(x*denominator )/denominator );
先把1.444换算成2.888,然后四舍五入到3.0再除以2得到1.5。在这种情况下,0.5 的分母是 2(即 1/2)。如果你想四舍五入到最近的四分之一(0.25,0.5,0.75,0.00),那么分母=4
我应该指出,如果分母是 2 的幂,这将完美运行。如果不是,请说 denominator=3
,那么对于特定值,您可能会得到奇怪的答案,例如 1.99999999 而不是 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