我做的很简单:
纬度:String = String.fromCString(UnsafePointer(sqlite3_column_text(statement,11)))!
数据库中的值是"真实"。 在我拥有的数据库中 51.234183426424316(使用Firefox' SQLite Manager验证)
通过以上内容,我只获得了我的字符串: 51.2341834264243 (缺少最后两位数,不能使用坐标)
有任何解释吗?溶液
答案 0 :(得分:2)
SQLite存储64位IEEE浮点数这样的数字,其有效位精度为53位,相当于大约15-17位十进制数。
如何格式化这样的数字用于显示是一个不同的问题。 如果您想控制它,请使用sqlite3_column_double()获取原始值,并自行将其转换为字符串。
(你抱怨的差异小于可见光的波长......)