Richardson Asked: 2023-12-08 06:22:42 +0800 CST2023-12-08 06:22:42 +0800 CST 2023-12-08 06:22:42 +0800 CST firestore 的增量是在 firestore 字段中添加长浮动吗?[复制] 772 我正在客户端开发一个指标函数。但是,增量操作是将长浮点数添加到 Firestore 字段,即使我已将值固定为小数点后两位。Firestore 似乎仍在存储长浮点值。 const verdict = Number((actionData - afterActionData).toFixed(2)); const payload = { [todayDate]: { [dataKey()]: increment(+verdict) }; await updateDoc(fireStoreMetricsDoc, payload); 1 个回答 Voted Best Answer 2023-12-08T06:48:10+08:002023-12-08T06:48:10+08:00 这总是会发生在浮点数上。它们牺牲精度以便能够在分配的空间中存储更大范围的数字。 您有几个选择: 显示数字时,将其四舍五入为正确的位数。 将定点数存储为字符串,即"3.04",因为 Firestore 不支持定点数(很少有系统支持)。但在这种情况下,您将失去通过运算符进行数学运算的能力increment。 将它们存储为完整值 - 即,如果这是一种货币,请将其存储为美分,以便它成为304。这实际上是存储定点数的最常见方法。 另请参阅: 定点数与浮点数 Firestore增量浮点问题 使用小数时 FieldValue.increment 会产生错误的总和
这总是会发生在浮点数上。它们牺牲精度以便能够在分配的空间中存储更大范围的数字。
您有几个选择:
显示数字时,将其四舍五入为正确的位数。
将定点数存储为字符串,即
"3.04"
,因为 Firestore 不支持定点数(很少有系统支持)。但在这种情况下,您将失去通过运算符进行数学运算的能力increment
。将它们存储为完整值 - 即,如果这是一种货币,请将其存储为美分,以便它成为
304
。这实际上是存储定点数的最常见方法。另请参阅: