CGFloat的变量返回0.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

你正在做整数除法,而不是浮点数。 –

如果你不加入转换,这将完美工作。

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

之所以出现这种不明确的转换工作是beause 斯威夫特把整数作为Int如果是没有上下文。

这正是转换括号内发生的事情。