Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 双圆到0.5_Swift_Rounding - Fatal编程技术网

Swift 双圆到0.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

我有一个结果“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.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