Grails 2.0 存在持久化 BigDecimal 的问题

标签 grails h2 bigdecimal

我试图在一个全新的 grails 2.0 应用程序中保留一个 BigDecimal,但它的行为完全不符合我的预期。

我制作了一个名为 l2bigdec 的新应用程序并添加这个域类:

package l2bigdec

class PlayMe {
  BigDecimal imStupidOrSomething
  static constraints = {
  }
}

然后我把这段代码放在 bootstrap 中:
import l2bigdec.*
class BootStrap {

  def init = { servletContext ->
    def thisThingIHate =  new PlayMe(imStupidOrSomething:0.912345).save(failOnError:true)
    println thisThingIHate.imStupidOrSomething
    PlayMe.withSession{it.clear()}
    def getItBack = PlayMe.find{it}
    println getItBack.imStupidOrSomething
  }
  def destroy = {
  }
}

哪个打印:
0.912345
0.91

为什么两次都不打印 0.912345?我不明白 BigDecimal 吗?

最佳答案

比例约束允许您控制:

...
BigDecimal myNum

static constraints = {
   myNum(scale: 6)
}
...

http://grails.org/doc/latest/ref/Constraints/scale.html

关于Grails 2.0 存在持久化 BigDecimal 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9439924/

相关文章:

grails - 在过滤器中访问params.id时遇到问题

grails - 将PropertyEditor关联到特定 Controller

grails - 通过GORM手动更新自动生成的ID

mysql - 来自同一个表-H2 数据库的两个联合

spring-boot - Spring Boot 测试似乎正在创建与我预期不同的 H2 测试数据库

java - 如何指定要打印的 BigDecimal 的小数位数?

grails - 如何使用原语为多对多创建Grails查询?

java - 如何将数组数据类型(H2数据库)转换为java List<Long>?

java - 动态报告 BigDecimal

MongoDB - 十进制类型的值怎么样?