2016-05-05 55 views
0

我试图保存并将浮动数据类型检索到Firebase。我能够保存得很好,并具有如下结构。Firebase:保存和检索浮动(Swift)

Firebase Screenshot

然而,当我尝试使用代码

for child in snapshot.children.allObjects as! [FDataSnapshot] { 

      let rating = child.value["rating"] as? Float 
      print(rating) 

我得到以下检索值:

可选(8.19999981)

可选(8.69999981 )

可选(9.1999998 1)

什么是防止这种情况发生的最好方法?

回答

3

Firebase不直接支持浮动类型。数字表示是由NSNumber的支持,所以一般要么你的号码保存为一个字符串或保存时,它包装成一个NSNumber和回读时扭转。

let p = 3.14159265 
let n = NSNumber(float: Float(p)) 

print(n) 

有很多替代品的为好。

+0

啊真棒,我没有意识到这一点。工作完美,谢谢! – FortuneFaded

+0

等待,实际上它仍然是随机发生的...我将它保存为let rating = NSNumber(float:(Float(ratingInput))!),并且以与上面相同的方式检索它,除了as! NSNumber – FortuneFaded

+0

我结束了使用这种方法四舍五入它[http://stackoverflow.com/questions/27338573/rounding-a-double-value-to-x-number-of-decimal-places-in-swift](http ://stackoverflow.com/questions/27338573/rounding-a-double-value-to-x-number-of-decimal-places-in-swift) – FortuneFaded