Swift中两位小数之间的随机数

时间:2014-09-25 02:11:30

标签: ios random swift

我希望得到两个小十进制数之间的随机数。

介于0.8和1.3之间。

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

var duration = CGFloat(arc4random() % 0.5) + 0.8

谢谢!

2 个答案:

答案 0 :(得分:35)

这是一个通用函数,我刚刚写了一个范围内的随机数。

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

它需要一个随机数,找到该数字的余数除以两个参数之间的差值,然后加上较小的数字。这保证了随机数在两个数字之间。

免责声明:我尚未对此进行测试。

编辑:现在这个功能可以满足您的需求。

答案 1 :(得分:1)

雨燕5:

使用random(in:)返回指定范围内的随机值:

return authResult.user != null;

每个苹果:

random()静态方法从连续变量中选择一个随机值 范围内的均匀分布,然后将该值转换为 此类型中最接近的可表示值。

请参见random(in: using: ),以指定默认值以外的随机数生成器。