我在实体的属性上应用标准,该属性是浮动的并且不起作用。
Criteria crit = session.createCriteria(MyClass.class);
float a = (float)0.2;
crit.add(Restictions.eq("mynumber", a));
其中mynumber是我的实体
@Column(name = "mynumber")
private float mynumber;
它总是给我空结果,而在我的表中有mynumber = 0.2
的行如果我在任何其他列上放置任何其他标准,则问题仅在于此浮点类型。
任何想法可能是什么解决方案
感谢
答案 0 :(得分:3)
floating
个数字代表IEEE Standard 754
个代表,而0.2
可能会被存储为0.19999967..
。这使你的比较失败,因此没有结果。
要避免此问题,请尽可能使用double
或BigDecimal
。