mysql st\u asgeojson返回的浮点数字不是原始数据

mu0hgdu0  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(319)

我使用php在数据库中保存一行。一个字段的类型为 geometry . 我保存了一个 POINT 用坐标 52.5219 以及 13.4132 .
当我检索行时,我使用 ST_AsGeoJSON . 它还给我:

"geometry": {
    "type": "Point",
    "coordinates": [
        52.5219000000000022509993868879973888397216796875,                        
        13.413199999999999789679350215010344982147216796875
    ]
}

我想要没有多余数字的结果。这只发生在我的暂存服务器上。在我的本地服务器上,它返回正确的坐标。

jqjz2hbq

jqjz2hbq1#

这是一个常见的问题。您可以从这里了解更多信息:https://bugs.php.net/bug.php?id=41357
它是如何产生的?当你从一个浮点数中减去一个整数时,有时它会给你这种类型的错误。例如:
var_dump(214.16569-214);
varïu垃圾场(114.16569-114);
解决方案:
有几种方法可以解决这个问题。我用下面的代码限制小数点后的数字。限制为4位:
$value=数字格式($value,4);
您可以使用上述代码格式化数据。小数点后只显示4位数字。

相关问题