首先,是否完全支持通过浮动值递增?
保持什么级别的浮点精度?
答案 0 :(得分:6)
MongoDB支持通过浮点值递增。这将导致存储的值转换为浮点(如果它当前是其他数字类型),如果前一个值是一个非常大的64位整数,则可能导致舍入错误。
所有涉及浮点数的标准警告都适用。与Web浏览器中的JavaScript解释器一样,MongoDB存储IEEE双精度(64位)浮点值。这些值具有53位精度。中间计算可以使用80位长双精度计算,但最终结果始终存储为64位双精度浮点值。
答案 1 :(得分:1)
当使用非常大的数字时,我在shell中遇到了问题。 JavaScript会向下舍入,因此增量不会发生,并且会进入无限循环。我不得不强迫它使用NumberLong()来解决问题。公平地说,我没有明确使用浮点类型,但我相信这是JavaScript中的默认值 - 我将它用作整数(计数)。
据我所知,这不应该是非JavaScript语言驱动程序中的问题。