Swift 在范围内生成随机CGFloat数时,将剪切到小数点后1位

Swift 在范围内生成随机CGFloat数时,将剪切到小数点后1位,swift,range,between,arc4random,Swift,Range,Between,Arc4random,我在Swift中找到了两个在两个数字之间生成随机数的公式。第一种(最常见的)是: 要获得X.XXXXXXXXXXXXX的完整CGFloat值,此操作如下: let randomNum = CGFloat(arc4random()) / CGFloat(UINT32_MAX) * abs(lowerNum - upperNum) + min(lowerNum, upperNum) 为什么第一个会截断成整数?第一个不会截断任何东西。整个公式只适用于整数。啊,是的。。。因此,即使我强制转换为CGFl

我在Swift中找到了两个在两个数字之间生成随机数的公式。第一种(最常见的)是:

要获得X.XXXXXXXXXXXXX的完整CGFloat值,此操作如下:

let randomNum = CGFloat(arc4random()) / CGFloat(UINT32_MAX) * abs(lowerNum - upperNum) + min(lowerNum, upperNum)

为什么第一个会截断成整数?

第一个不会截断任何东西。整个公式只适用于整数。啊,是的。。。因此,即使我强制转换为CGFloat,UIInt32也保持为整数?第二个公式中的什么允许全浮点?将任何数字转换为
UInt32
将得到一个整数。在第二个例子中,您正在处理浮点值。好的,明白了。再次感谢,准备好了!
let randomNum = CGFloat(arc4random()) / CGFloat(UINT32_MAX) * abs(lowerNum - upperNum) + min(lowerNum, upperNum)