Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在数据库';s浮点数(10,8)列?_Mysql - Fatal编程技术网

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