Query qry = session.createSQLQuery(qrystr)
.addScalar("id", Hibernate.INTEGER)
.addScalar("balance",Hibernate.FLOAT);
Object[] headerDetails=(Object[])qry.uniqueResult();
session.close();
System.out.println("balance"+headerDetails[1]);
上記のコードでは、クエリが実行されると、データベースから値 66996956 が 6.6996956E7 として返されます。
DOUBLE の場合でも、出力は 6.6996956E7 です。ただし、 math.BIG_DECIMAL が提供されている場合、値は正しいです。double と float に問題があるのはなぜですか。そして、コードでは、残りのデータが float であるため、bigdecimal を導入できます。