如何在MySQL数据库中存储精确的十进制度坐标
我使用Google代码上的store locator教程创建了一个数据库,该教程指定存储标记坐标的字段类型为如何在MySQL数据库中存储精确的十进制度坐标,mysql,database,types,floating-point,sqldatatypes,Mysql,Database,Types,Floating Point,Sqldatatypes,我使用Google代码上的store locator教程创建了一个数据库,该教程指定存储标记坐标的字段类型为FLOAT(10,6)。然而,当我使用谷歌的地理编码服务对某些点进行地理编码时,我会得到一些小数点后14位的结果。比如说, -70.072908999998 数字从不大于21或小于-67,小数点后始终有1到14位数字 如何在数据库中设置此字段?我只使用了十进制列类型,小数点后的六位数字对于位置来说足够精确。不使用浮点;使用固定点。自然漂流是艰难的 3之前,15之后 十进制(17,14)M
FLOAT(10,6)
。然而,当我使用谷歌的地理编码服务对某些点进行地理编码时,我会得到一些小数点后14位的结果。比如说,
-70.072908999998
数字从不大于21或小于-67,小数点后始终有1到14位数字
如何在数据库中设置此字段?我只使用了
十进制列类型,小数点后的六位数字对于位置来说足够精确。不使用浮点;使用固定点。自然漂流是艰难的
3之前,15之后
十进制(17,14)MySQL应该为您四舍五入。根据,赋值为999.00009的FLOAT(7,4)
将存储为999.0001,为了更好地读取:只需将FLOAT设置为速度精度。双精度是精确的。但是,在处理如此小或大规模的数学问题时,通常不需要精确性。链接文章中标记的答案真的进入了数学理论(远远超过我的理解)