潜水arc4random_unifrom的结果给了我0

时间:2017-08-10 03:46:08

标签: swift arc4random

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

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

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

AtBatResult = AtBatResult / Int(10000)

但是当我运行这行代码时,无论怎样,数字都变为0。这里发生了什么?提前谢谢!

1 个答案:

答案 0 :(得分:2)

您已宣布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

FYI - 使用小写字母启动方法和变量名称是标准命名约定。类名以大写字母开头。