2017-07-22 37 views
0

當我試試這個:CGFloat的變量返回0.0

let progress: CGFloat = CGFloat(2/3) 
print(progress) 

控制檯返回0,但結果是0,66666666667,而不是0 ....這是爲什麼發生?

當我嘗試:

let progress: CGFloat = CGFloat(10/3) 
print(progress) 

它返回3.0,是CGFloat的是如何工作的呢?有沒有辦法讓CGFLoat獲得逗號?

+1

你正在做整數除法,而不是浮點數。 –

回答

3

如果你不加入轉換,這將完美工作。

let progress: CGFloat = 2/3 
print(progress) //0.666666666666667 

之所以出現這種不明確的轉換工作是beause 斯威夫特把整數作爲Int如果是沒有上下文。

這正是轉換括號內發生的事情。