Mysql 如何在数据库';s浮点数(10,8)列?
我有Mysql 如何在数据库';s浮点数(10,8)列?,mysql,Mysql,我有经度和纬度120,-128.67500305。它们以FLOAT(10,8)的形式保存在数据库中。如何将经度=120发送到MySQL数据库?在这里,我使用GoforAPI。当我将longitude=120发送到DB时,它会显示错误“超出‘longitude’列的范围值”。有人能帮我吗?尽管有其他关于地理坐标数据类型的有用指导,但具体错误就在您的问题中——“超出范围值” MySQL中的FLOAT(10,8)类型只能存储±100.0范围内的值。不要使用FLOAT数据类型来保存精确的数字值 浮点是一
经度
和纬度
120
,-128.67500305
。它们以FLOAT(10,8)
的形式保存在数据库中。如何将经度=120发送到MySQL数据库?在这里,我使用GoforAPI。当我将longitude=120发送到DB时,它会显示错误“超出‘longitude’列的范围值”。有人能帮我吗?尽管有其他关于地理坐标数据类型的有用指导,但具体错误就在您的问题中——“超出范围值”
MySQL中的FLOAT(10,8)
类型只能存储±100.0范围内的值。不要使用FLOAT数据类型来保存精确的数字值
浮点是一种不精确(浮点)数学存储机制。在MySQL上,为了存储特定的十进制值,您应该使用十进制数字类型
我意识到这很令人困惑,因为在PHP和其他地方,float
可以表示整数之间的十进制数
例子:
这将存储一个11位的值,小数点后有8位。例如:
-128.67500305
它永远不会舍入此值,但会自动切掉超过设置长度(11位)的任何额外数字
参考资料:
关于十进制数据类型
一个非常相似的问题
MySQL关于如何存储浮点数据的建议
另请查看实际建议使用空间数据类型来存储Lat/Long值的内容。实际数值在小数点后永远不会有任何尾随零,因此您需要的是从技术上不可能开始。不幸的是,这是不可能的。尾随的零只能存在于字符串中,不能存在于数字中。
console.log(120==120.0000000000)
//true@PawaniSanthara-你把数字误认为是它的代表。数字120就是数字120,我们可以用几种方式写:120,120.0,120.00等等。恕我直言,你可能问错了问题。我怀疑正确的问题是“如何将此数字存储在此数据库的FLOAT(10,8)
列中?”标记特定数据库和用于访问该数据库的特定API、您在上面的评论中提到的错误消息,并包括给出错误的代码。可能重复FLOAT(10,8)
MySQL中的字段只能存储+/-99.9999999范围内的值@BobJarvis是的,尽管在我的测试中MySQL将显示99.9999999
为100.0
Latitude DECIMAL(11,8) SIGNED