java - 如何在 java 和 hibernate 中存储精确的精度值?

标签 java mysql hibernate

用户输入为:44.4

当存储到数据库中时,它转换为:44.40000153

数据库数据类型是:float,长度是:20,8

这里我想精确存储 44.4

我不想更改数据库设计。

最佳答案

那时候不要使用float。在数据库中使用 number(10,5)(或您需要的任何数字),在 Java 中使用 BigDecimal

BigDecimal 为您提供无限数量的数字,但在数据库中可以存储的数字是有限的。通常是 38 位数字(即通常足够)。

关于java - 如何在 java 和 hibernate 中存储精确的精度值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45278861/

相关文章:

java - 函数抛出异常时,其返回类型可以是Exception

mysql - SQL 查询多次返回 group_concat 函数中的标签字段

mysql - 是否可以返回对象列表但通过属性限制列表中每个对象的唯一性?

java - 在 Solaris 中使用 Java SE 1.7 的 Tomcat 7 启动失败

java - 空对象引用上的 NullPointerException : Attempt to invoke virtual method 'void android. widget.CheckBox.setOnClickListener,仅在平板电脑上

php - 单个查询以获取过去 7 天的个人计数

java - Spring - 找不到 org/springframework/context/event/EventListenerFactory 的类文件

java - 具有从 Hibernate 调用的 OUT 参数的 Oracle 存储过程

java - 长时间运行后,Volley 导致服务崩溃应用程序

php - 选择 LAST_INSERT_ID() *更新