2012-03-16 23 views
2

首先,是否完全支持浮點值增量?

維持什麼級別的浮點精度?

+0

你嘗試過什麼嗎?你注意到了奇怪的行爲?這裏有一些關於shell和mongo驅動程序如何處理整數和浮點數的信息http://stackoverflow.com/questions/7682714/does-mongodb-support-floating-point-types – raffian 2012-03-16 20:40:47

+0

對不起 - 我還沒有遇到任何問題,但是我知道它們可能發生在MySQL中,並且在文檔中看不到任何提及對浮動的支持 – 2012-03-18 19:44:43

回答

5

MongoDB支持按浮點值遞增。這將導致存儲值被轉換爲浮點,如果它是當前某種其他數值類型的話,如果前一個值是非常大的64位整數,則會導致舍入錯誤。

所有涉及浮點數的標準警告都適用。與web瀏覽器中的JavaScript解釋器一樣,MongoDB存儲IEEE雙精度(64位)浮點值。這些值具有53位的精度。中級計算可能使用80位長雙精度來計算,但最終結果始終以64位雙精度浮點值存儲。

1

當我使用非常大的數字時,我遇到了shell中的問題。 JavaScript會下降,所以增量不會發生,並且會進入無限循環。我不得不迫使它使用NumberLong()來解決這個問題。公平地說,我沒有明確使用float類型,但我相信這是JavaScript中的默認值 - 我將它作爲整數(count)使用。

據我所知,這在非JavaScript語言驅動程序中不應該是個問題。

相關問題