Random number between two decimals in Swift

前端 未结 2 823
离开以前
离开以前 2020-12-19 02:24

I\'d like to get a random number between two small decimal numbers.

Between maybe 0.8 and 1.3.

var duration = CGFloat(arc4random() % 0.8) / 1.3
         


        
2条回答
  •  忘掉有多难
    2020-12-19 03:18

    Here's a generic function I just wrote up quickly to get a random number within a range.

    func randomBetween(_ firstNum: CGFloat, _ secondNum: CGFloat) -> CGFloat{
        return CGFloat(arc4random()) / CGFloat(UINT32_MAX) * abs(firstNum - secondNum) + min(firstNum, secondNum)
    }
    

    It takes a random number, finds the remainder of that number divided by the difference between the two parameters, then adds by the smaller number. This guarantees the random number to be between the two numbers.

    Disclaimer: I have not tested this out yet.

    EDIT: Now this function does what you want.

提交回复
热议问题