簡體   English   中英

Swift中兩位小數之間的隨機數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM