我的数据库中有一个名为“position”的双精度列
如果在该列中有一行的值为:0.564593301435407
我有一个查询,它有一个WHERE语句,如下所示:
WHERE "position" >= 0.564593301435407
(即,查询大于或等于该完全相同的值)
它不返回该列。
为什么会这样?
最佳答案
我无法重现你的问题:http://sqlfiddle.com/#!15/4cb15/6
然而,在15位有效数字的情况下,你非常接近双精度精度的精度极限,而且小提琴提示,该值可能会四舍五入到0.56459330143541,而数字则不是。
我建议,如果您优先考虑高精度比较,那么numeric
是更好的数据类型选择。