我想在两个小十进制数之间得到一个随机数.
介于0.8和1.3之间.
var duration = CGFloat(arc4random() % 0.8) / 1.3
Run Code Online (Sandbox Code Playgroud)
要么
var duration = CGFloat(arc4random() % 0.5) + 0.8
Run Code Online (Sandbox Code Playgroud)
谢谢!
erd*_*ser 35
这是一个通用函数,我刚刚写了一个范围内的随机数.
func randomBetween(_ firstNum: CGFloat, _ secondNum: CGFloat) -> CGFloat{
return CGFloat(arc4random()) / CGFloat(UINT32_MAX) * abs(firstNum - secondNum) + min(firstNum, secondNum)
}
Run Code Online (Sandbox Code Playgroud)
它需要一个随机数,找到该数字的余数除以两个参数之间的差值,然后加上较小的数字.这保证了随机数在两个数字之间.
免责声明:我还没有测试过.
编辑:现在这个功能做你想要的.
斯威夫特5:
使用random(in:)返回指定范围内的随机值:
var duration = CGFloat.random(in: 0.8 ... 1.3)
Run Code Online (Sandbox Code Playgroud)
每苹果:
random() 静态方法从范围内的连续均匀分布中选择一个随机值,然后将该值转换为该类型中最接近的可表示值。
请参阅random(in: using: )来指定默认值以外的随机生成器。
| 归档时间: |
|
| 查看次数: |
7290 次 |
| 最近记录: |