随机CGFloat在Swift中返回奇怪的值

时间:2017-03-18 23:29:56

标签: swift cgfloat

我有一个在Swift中生成随机CGFloats的扩展:

public extension CGFloat {
    /// Randomly returns either 1.0 or -1.0.
    public static var randomSign:CGFloat {
        get {
            return (arc4random_uniform(2) == 0) ? 1.0 : -1.0
        }
    }
    /// Returns a random floating point number between 0.0 and 1.0, inclusive.
    public static var random:CGFloat {
        get {
            return CGFloat(arc4random())
        }
    }
    /**
     Create a random num CGFloat

     - parameter min: CGFloat
     - parameter max: CGFloat

     - returns: CGFloat random number
     */
    public static func random(min: CGFloat, max: CGFloat) -> CGFloat {
        return CGFloat.random * (max - min) + min
    }
}

我正在使用它:

var viewHeight:CGFloat = view.frame.size.height

    var randomY:CGFloat = CGFloat.random(min: 0, max: viewHeight)
    print(randomY)


    var randomWidth:CGFloat = CGFloat.random(min: 90, max: 300)

    print(randomWidth)

但是我得到了奇怪的结果,比如:

6483772455.0
878524470690.0

为什么呢?我预计会有更低的价值,例如在90-300之间等。

我做错了什么?

0 个答案:

没有答案