gpt4 book ai didi

sql-server - float sql server 转换问题

转载 作者:行者123 更新时间:2023-12-05 00:14:45 25 4
gpt4 key购买 nike

我有这个声明:

Select STORE_NAME,STORE_LATITUDE,STORE_LONGTITUDE
from stores
where STORE_LATITUDE=24.6669863852163
and STORE_LONGTITUDE=46.69189453125

这个语句应该返回一行,我很确定我在数据库表中输入了正确的纬度和经度,但它返回空值而不是我正在寻找的商店,但我找不到我的错误 STORE_LATITUDE,STORE_LONGITUDE 被声明为 float

最佳答案

浮点值本质上是近似值。真的很难让他们比较平等;关于“手榴弹和马蹄铁的接近计数”的古老格言也适用于浮点计算。

我想说的是,您永远无法可靠地测试 float 之间的相等性。

您需要这样的查询:

 Select STORE_NAME,STORE_LATITUDE,STORE_LONGTITUDE
from stores
where STORE_LATITUDE BETWEEN 24.6669863852163 - 0.0001
AND 24.6669863852163 + 0.0001
AND STORE_LONGTITUDE BETWEEN 46.69189453125 - 0.0001
AND 46.69189453125 + 0.0001

顺便说一下,0.0001 度的纬度相当于地面上大约 11 米。您的商店位置不太可能接近那个准确度,因为这就是地球形状的球形假设开始分崩离析的地方。

像 24.6669863852163 这样的纬度基准的精度大约为 11 纳米,或者复杂碳水化合物分子或类似分子的大小。这对于分子生物学来说很酷,但对于商店搜索者来说显然有点过头了。

关于sql-server - float sql server 转换问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17442741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com