潜水 arc4random_unifrom 的结果给我 0

Diving the result of an arc4random_unifrom gives me 0

我正在尝试创建一个介于 0 和 1 之间的小数,因此我创建了一个介于 0 和 10000 之间的 Int,然后将其除以 10000(一个 Int)以获得小数。

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

这行代码给我的数字很好。

AtBatResult = AtBatResult / Int(10000)

然而当我运行这行代码时,数字无论如何都变成0。这里发生了什么?提前致谢!

您已声明 atBatResultInt。您不能为其分配十进制值。而你正在做整数除法。

你需要一个Double变量,你需要做十进制除法。

这是一种方法:

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

或者你可以这样做:

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

这将使 atBatResult 成为 Double 而不是 Int

仅供参考 - 以小写字母开头的方法和变量名称是标准命名约定。 Class 名称以大写开头。