sqlite3缩短了浮点值

时间:2015-02-27 21:25:06

标签: sqlite swift

我做的很简单:

纬度:String = String.fromCString(UnsafePointer(sqlite3_column_text(statement,11)))!

数据库中的值是"真实"。 在我拥有的数据库中 51.234183426424316(使用Firefox' SQLite Manager验证)

通过以上内容,我只获得了我的字符串: 51.2341834264243 (缺少最后两位数,不能使用坐标)

有任何解释吗?溶液

1 个答案:

答案 0 :(得分:2)

SQLite存储64位IEEE浮点数这样的数字,其有效位精度为53位,相当于大约15-17位十进制数。

如何格式化这样的数字用于显示是一个不同的问题。 如果您想控制它,请使用sqlite3_column_double()获取原始值,并自行将其转换为字符串。

(你抱怨的差异小于可见光的波长......)