当比较浮动a< = float b时,MySQL没有提取正确的结果,不正确的舍入可能是问题

时间:2016-10-05 17:23:47

标签: mysql sql rounding pervasive

我在从一些表中提取数据时遇到问题。应该返回信息的查询如下:

SELECT   *
FROM     tableone a,
         tabletwo b
WHERE    (a.RateCurrency = 'U')
AND      (a.EffectiveDate <= '2016-10-05')
AND      (a.ExpiryDate >= '2016-10-05')
AND      (a.TestOrProd = 'P')
AND      (a.TableKey = b.TableKey)
AND      (b.Min <= 2.39)
AND      (b.Max >= 2.39)

问题出在b.Min上。在平板电脑中,最小值是2.39,由于某种原因MySQL没有达到2.39 <= 2.39。如果我在查询中将2.39更改为2.4,则会提取结果,如果我进入tabletwo并将最小值更改为2.3899,它也会提取结果。

MySql中是否存在某些我不知道的浮动舍入行为? (Min的数据类型是float)

此外,我不知道这是否有所不同,但我们之前使用的是Pervasive数据库,只是转移到了MySql ...这个问题在Pervasive中也出现过,所以两者之间是否存在共同问题?

0 个答案:

没有答案