2016-05-05 96 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