Grails 2.0与持久BigDecimal有关

Mik*_*key 5 grails h2 bigdecimal

我试图在一个全新的Grails 2.0应用程序中坚持使用BigDecimal,并且它根本不符合我的预期.

我创建了一个新应用程序l2bigdec并添加此域类:

package l2bigdec

class PlayMe {
  BigDecimal imStupidOrSomething
  static constraints = {
  }
}
Run Code Online (Sandbox Code Playgroud)

然后我把这段代码放在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 = {
  }
}
Run Code Online (Sandbox Code Playgroud)

哪个印刷品:

0.912345
0.91
Run Code Online (Sandbox Code Playgroud)

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

小智 10

缩放约束允许您控制:

...
BigDecimal myNum

static constraints = {
   myNum(scale: 6)
}
...
Run Code Online (Sandbox Code Playgroud)

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