2017-08-10 117 views
0

我想創建一個0和1之間的小數,所以我創建一個介於0和10000之間的Int,然後將它除以10000(一個Int)以獲得小數。潛水arc4random_unifrom的結果給我0

AtBatResult = Int(arc4random_uniform(UInt32(10000))) 

這行代碼給了我很好的數字。

AtBatResult = AtBatResult/Int(10000) 

但是,當我運行這一行代碼時,無論如何數字都變爲0。這裏發生了什麼?提前致謝!

+0

在分割前將AtBatResult轉換爲十進制數。 –

回答

2

您已將atBatResult宣佈爲Int。你不能給它分配一個十進制值。你正在做整數除法。

你需要一個Double變量,你需要做十進制除法。

這裏有一種方法:

let atBatResult = Int(arc4random_uniform(UInt32(10000))) 
let finalResult = Double(atBatResult)/10000 

或者,你可以這樣做:

let atBatResult = Double(arc4random_uniform(UInt32(10000)))/10000 

這將使atBatResult一個Double而不是Int

僅供參考 - 標準命名約定用小寫字母開始方法和變量名。類名以大寫字母開頭。

+0

我得到的結果「二進制運算符'/'不能應用於類型'Double'和'Int'的操作數」 – StefWG

+0

我在哪兩行發佈?我的答案中的代碼沒有遇到問題。 – rmaddy

+0

現在,它的工作,我已經宣佈的變種之前,作爲一個Int,這就是爲什麼。謝謝! – StefWG