2012-11-21 48 views
2

我正在對float類型的實體屬性應用條件,但它不工作。hibernate:如何在浮點類型上設置條件

  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

如果我把任何其他標準上的任何其他列它的工作原理,問題是隻有這個浮點類型。

任何想法可能是解決

感謝

回答

2

floating產品編號爲IEEE Standard 754代表性和0.2可以存儲爲0.19999967..。這會使你的比較失敗,因此沒有結果。

要避免此問題,請儘可能使用doubleBigDecimal