【问题标题】:Firebase - store currency type valueFirebase - 存储货币类型值
【发布时间】:2017-11-21 18:29:55
【问题描述】:

我正在构建汇率应用程序并将 Firebase 用作数据存储。 在之前的版本 1 中,确实将汇率数据存储在字符串中,并将字符串转换为 Android 设备上的 BigDecimal 以进行计算。 现在,当我在处理第 2 版时,我决定审查代码并进行更新。我找到了以整数类型存储费率数据而不是转换回小数/双精度/浮点数的解决方案。

流程:

后端 Python -> dataTostore = int(货币汇率值 * 100) Android Java -> rateValue = dataToStore / 100.00

有解决这个问题的经验吗?

如何解决它或使用 string-BigDecimal 足够好?

谢谢。

【问题讨论】:

    标签: java python firebase firebase-realtime-database


    【解决方案1】:

    以最小面额的计数存储货币价值是一种常见的做法。它确保您始终可以计算完整值并降低与浮点类型相关的舍入错误的风险。

    整数类型是否足够取决于您要存储的最大值。

    Firebase 数据库在内部支持带符号的 64 位长整数 (-2^63 ... 2^63-1)。请注意,JavaScript 在内部使用 64 位双精度值,因此一些大整数(大于 2^53)无法精确表示,并且会丢失精度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-13
      • 2011-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多