我有一个结果"1.444444",我想将此结果舍入到"1.5"这是我使用的代码:
a.text = String(round(13000 / 9000.0))
Run Code Online (Sandbox Code Playgroud)
但这是圆的"1.0",我需要圆到"1.5"
而这段代码:
a.text = String(ceil(13000 / 9000.0))
Run Code Online (Sandbox Code Playgroud)
圆到"2.0"
atx*_*txe 36
斯威夫特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
Run Code Online (Sandbox Code Playgroud)
斯威夫特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
Run Code Online (Sandbox Code Playgroud)
Mar*_*ata 18
x = 13000 / 9000.0;
denominator = 2;
a.text = String(round(x*denominator )/denominator );
Run Code Online (Sandbox Code Playgroud)
首先将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的特定值.
| 归档时间: |
|
| 查看次数: |
4804 次 |
| 最近记录: |