我试图在一个全新的 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/