[英]Random number between two decimals in Swift
我想在兩個小十進制數之間得到一個隨機數。
在 0.8 到 1.3 之間。
var duration = CGFloat(arc4random() % 0.8) / 1.3
或者
var duration = CGFloat(arc4random() % 0.5) + 0.8
謝謝!
這是我剛剛快速編寫的通用函數,用於獲取范圍內的隨機數。
func randomBetween(_ firstNum: CGFloat, _ secondNum: CGFloat) -> CGFloat{
return CGFloat(arc4random()) / CGFloat(UINT32_MAX) * abs(firstNum - secondNum) + min(firstNum, secondNum)
}
它需要一個隨機數,找到該數的余數除以兩個參數之間的差,然后加上較小的數。 這保證了隨機數在兩個數字之間。
免責聲明:我還沒有對此進行測試。
編輯:現在這個功能做你想要的。
斯威夫特 5:
使用random(in:)返回指定范圍內的隨機值:
var duration = CGFloat.random(in: 0.8 ... 1.3)
每個蘋果:
random() 靜態方法從范圍內的連續均勻分布中選擇一個隨機值,然后將該值轉換為該類型中最接近的可表示值。
請參閱random(in: using: )以指定默認值以外的隨機生成器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.