潜水 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。这里发生了什么?提前致谢!
您已声明 atBatResult
为 Int
。您不能为其分配十进制值。而你正在做整数除法。
你需要一个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 名称以大写开头。
我正在尝试创建一个介于 0 和 1 之间的小数,因此我创建了一个介于 0 和 10000 之间的 Int,然后将其除以 10000(一个 Int)以获得小数。
AtBatResult = Int(arc4random_uniform(UInt32(10000)))
这行代码给我的数字很好。
AtBatResult = AtBatResult / Int(10000)
然而当我运行这行代码时,数字无论如何都变成0。这里发生了什么?提前致谢!
您已声明 atBatResult
为 Int
。您不能为其分配十进制值。而你正在做整数除法。
你需要一个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 名称以大写开头。