2017-08-10 86 views
0

我想创建一个0和1之间的小数,所以我创建一个介于0和10000之间的Int,然后将它除以10000(一个Int)以获得小数。潜水arc4random_unifrom的结果给我0

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

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

AtBatResult = AtBatResult/Int(10000) 

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

+0

在分割前将AtBatResult转换为十进制数。 –

回答

2

您已将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

仅供参考 - 标准命名约定用小写字母开始方法和变量名。类名以大写字母开头。

+0

我得到的结果“二进制运算符'/'不能应用于类型'Double'和'Int'的操作数” – StefWG

+0

我在哪两行发布?我的答案中的代码没有遇到问题。 – rmaddy

+0

现在,它的工作,我已经宣布的变种之前,作为一个Int,这就是为什么。谢谢! – StefWG