相关疑难解决方法(0)

浮动和双重比较最有效的方法是什么?

比较两个double或两个float值的最有效方法是什么?

简单地这样做是不正确的:

bool CompareDoubles1 (double A, double B)
{
   return A == B;
}
Run Code Online (Sandbox Code Playgroud)

但是像这样:

bool CompareDoubles2 (double A, double B) 
{
   diff = A - B;
   return (diff < EPSILON) && (-diff < EPSILON);
}
Run Code Online (Sandbox Code Playgroud)

似乎浪费处理.

有谁知道更聪明的浮动比较器?

c++ algorithm floating-point optimization

495
推荐指数
13
解决办法
39万
查看次数

为什么这个sql查询没有返回任何比较浮点数的结果?

我在mysql表中有这个:

在此输入图像描述

id并且bolag_idint.lat并且lngitudedouble.

如果我使用该lngitude列,则不返回任何结果:

lngitude查询: SELECT * FROM location_forslag WHERE lngitude= 13.8461208

但是,如果我使用该lat列,它返回结果:

lat查询: SELECT * FROM location_forslag WHERE lat= 58.3902782

lngitude栏有什么问题?

mysql double

9
推荐指数
1
解决办法
1万
查看次数

MS SQL Float十进制比较问题

我正在规范化数据库,其中一部分涉及将列从一个表转换FLOAT为a DECIMAL(28,18).然后,当我尝试将此已转换的列连接回源列时,在某些情况下它不会返回任何结果.

它似乎与它转变的方式有关.例如, FLOAT转换为a DECIMAL(28,18)产生:

51.051643260000006000
Run Code Online (Sandbox Code Playgroud)

原来FLOAT

51.05164326
Run Code Online (Sandbox Code Playgroud)

我尝试了各种修改方法FLOAT,但这些方法都没有:

CAST(51.05164326 AS DECIMAL(28,18)) = 51.051643260000000000
STR(51.05164326 , 28,18) = 51.0516432599999990
Run Code Online (Sandbox Code Playgroud)

转换的原因是由于提高了这些字段的准确性.

有没有人有一个一致的策略来转换这些数字,并能够确保后续的连接工作?

提前致谢

厘米

t-sql comparison decimal

4
推荐指数
1
解决办法
2万
查看次数