2014-03-30 33 views
0

我正在使用minimal-json解析Java中的JSON數據流。該框架有許多方法可以讀取流的數字:asInt()asLong(),asFloat()asDouble()。假設我不知道元素的數字類型是什麼,那麼什麼方法可以提供最好的準確性?我這樣問,因爲我擔心使用asDouble()讀取所有元素會導致信息丟失。這是一個錯誤的假設?如何使用minimal-json讀取數字

+0

爲什麼你認爲double會導致信息丟失? – hellboy

+1

@hellboy查看[this [(http://stackoverflow.com/questions/1650505/what-is-the-inclusive-range-of-float-and-double-in-java)問題的答案,以理解我的恐懼。 – vainolo

回答

0

假設你知道數字不會很大,我會使用一個浮點數,因爲它的內存較小。在這個stackoverflow問題上的最後一個迴應是我會說使用float的原因。但如果您不確定使用雙精度型: float and double

0

如果一個64位long被寫爲一個整數並且大於2 ** 53(IEEE double有一個52位尾數),那麼讀它作爲一個雙精度將失去精度。

雖然在JSON中存儲這樣一個數字是作者的錯誤,因爲Javascript沒有64位整數,只能加倍。

相關問題