sqlite3_bind_double绑定参数保存的数据精度和Point.x的精度不一致

是这样,因为有几千个点的坐标我要保存到sqlite数据库中,表中的字段的类型设为real,为了提高保存数据时的性能,我用的是绑定变量的方式:

const char* sqlText = “insert into myTable (PosX,PosY) values (?,?)”;

sqlite3_prepare_v2(zuma24Gamedb, sqlText, strlen(sqlText), &stmt, 0);

sqlite3_bind_double(stmt, 1, mPointVec.at(i).x);
sqlite3_bind_double(stmt, 2, mPointVec.at(i).y);

这样批量插入数据时效率确实很高,但是插入的值的精度却和vector中保存的点坐标的精度不一致(表中存储的精度要高),所以导致如果按点坐标进行查询的时候得不到匹配的数据。

如果用低效率的方法,就是每一句都拼一个sql的话,存入的值的精度就和vector中保存的一致了。

我看了一下,sqlite绑定变量数值型的只有sqlite3_bind_double和sqlite3_bind_int,但是直接Point.x的值似乎是float型,有什么办法把float和sqlite3_bind_double时传入的值的精度保持一致吗?

一如既往的路过?