我正在尝试将浮点数存储在 MySQL 数据库中,但 Hibernate 的值与存储在列中的值不同,
在我的应用程序中,我计算:
float subtotal = 160.5f;
float ammount = (float) (subtotal * 0.1f); // this way I get the 10%
receipt.setAmmount(ammount);
receipt.save();
如果我记录该数量,我会得到如下信息:
19/04/2013 10:17:20 [INFO] ServiceImpl: Added ammount x $16.05
我ammount
在 mysql 数据库中的列是FLOAT UNSIGNED
,当我进行选择时,我获得 16.05 作为值,但后来,当我使用 Hibernate 获取该对象时,ammount 字段为 16.049999237060547。
我的 hbm 专栏如下所示:
<property name="ammount" type="float"></property>
我在这里和这里阅读建议BigDecimal
在 Java 中使用而不是Float
为了Double
钱,但我无法获得我应该在我的数据库中使用什么数据类型或如何配置 Hibernate 以使用该数据类型,谢谢!