【问题标题】:Saving and retrieving numeric values from Sqlite3从 Sqlite3 保存和检索数值
【发布时间】:2009-12-26 07:55:27
【问题描述】:

如何正确地将数值保存到 SQLite3。我使用 Real 类型来存储数值。例如:当我存储 233333.00 时很好。但是当我存储 23333333.00 时,它变成了 23333300.00。为什么保存为2.3333333E7,检索为2.33333e+07。有没有办法克服这个问题?

【问题讨论】:

    标签: android sqlite


    【解决方案1】:

    SQLite 使用的 real 类型存储为 8 字节 IEEE 浮点数,不能准确存储所有值。如果您想要精确的值,请使用任一整数字符串。

    【讨论】:

    • 谢谢。知道哪种数据字段最适合使用 REAL 类型吗?
    • 物理世界中没有真实的类型。如果你需要存钱,那么你可以使用整数字段(以美分为单位)。如果您需要以任意精度返回精确字符串,那么您可以字符串。如果您可以忍受一些精度损失,您可以使用 real。
    【解决方案2】:

    你正在失去精度,因为你的程序的变量是单精度的,你需要双精度。

    对于适合尾数的整数值,浮点实际上是完全准确的。

    你会得到 24 位单打和 53 位双打。

    这根本不是 sqlite 问题。

    【讨论】:

      猜你喜欢
      • 2018-11-20
      • 2021-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-03
      • 1970-01-01
      • 2012-08-25
      • 2013-06-28
      相关资源
      最近更新 更多