Php MySQL ST_AsGeoJSON返回的浮点数字不是原始数据
我正在使用PHP在数据库中保存一行。一个字段的类型为Php MySQL ST_AsGeoJSON返回的浮点数字不是原始数据,php,mysql,geojson,Php,Mysql,Geojson,我正在使用PHP在数据库中保存一行。一个字段的类型为几何体。我用坐标52.5219和13.4132保存一个点 检索行时,我使用ST_AsGeoJSON。它返回给我: "geometry": { "type": "Point", "coordinates": [ 52.5219000000000022509993868879973888397216796875, 13.41319999999999978
几何体
。我用坐标52.5219
和13.4132
保存一个点
检索行时,我使用ST_AsGeoJSON
。它返回给我:
"geometry": {
"type": "Point",
"coordinates": [
52.5219000000000022509993868879973888397216796875,
13.413199999999999789679350215010344982147216796875
]
}
我想要没有额外数字的结果。这只发生在我的暂存服务器上。在我的本地服务器上,它返回正确的坐标。这是一个常见问题。
您可以从这里了解更多信息:
它是如何产生的?
当你从一个浮点数中减去一个整数时,有时会出现这种错误。
例如:
瓦鲁垃圾场(214.16569-214)
瓦鲁垃圾场(114.16569-114)
解决方案:
有几种方法可以解决此问题。
我使用下面的代码限制小数点后的数字。要限制最多4位数字:
$value=number\u格式($value,4)
您可以使用上述代码格式化数据。小数点后只显示4位。但这是MySQL返回的数字。这似乎是一个MySQL问题,而不是PHP问题。