Grails 2.0 проблема с сохранением BigDecimal - PullRequest
5 голосов
/ 25 февраля 2012

Я пытаюсь сохранить BigDecimal в совершенно новом приложении Grails 2.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?

1 Ответ

10 голосов
/ 25 февраля 2012

Ограничение масштаба позволяет вам контролировать это:

...
BigDecimal myNum

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

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

...