Grails2.0持久化BigDecimal的问题

Grails2.0持久化BigDecimal的问题,grails,h2,bigdecimal,Grails,H2,Bigdecimal,我试图在一个全新的Grails2.0应用程序中保留一个大十进制数,但它的行为完全不是我所期望的 我制作了一个名为l2bigdec的新应用程序,并添加了这个域类: package l2bigdec class PlayMe { BigDecimal imStupidOrSomething static constraints = { } } 然后我将此代码放入引导程序: import l2bigdec.* class BootStrap { def init = { serv

我试图在一个全新的Grails2.0应用程序中保留一个大十进制数,但它的行为完全不是我所期望的

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

package l2bigdec

class PlayMe {
  BigDecimal imStupidOrSomething
  static constraints = {
  }
}
然后我将此代码放入引导程序:

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)
}
...

如果我真的想要一个大十进制而不是四舍五入的浮点,它需要保留我给它的每一个数字,该怎么办?这在2.0中不再可能了吗?我是否可以设置一个更大的默认比例,这样我就不必在项目中搜索更新每个bigdecime了?如果您针对的是特定的RDBMS,某些RDBMS具有可以使用的任意精度类型(
NUMERIC
,例如,在PostgreSQL中),否则,我知道不容易保留任意数字。我也不知道有哪一个点可以设置默认比例。如果BigDecimal属性名称在不同类中相似,则可以使用
grails.gorm.default.constraints
,如下所述: