我有一个Grails应用程序,我正在解析XML文件并使用解析后的数据创建对象并将它们保存到MySQL数据库。
我的一个班级有一个Float
属性:
class Foo {
// ...
Float myFloat
static constraints = {
myFloat(scale: 9) // Trying to specify 9 digits of precision, but this doesn't seem to be making any difference
}
// ...
}
在解析XML时,我来到一个值为6378137
的属性。我想将该值分配给myFloat
:
class MyService{
// ...
def xml = new XmlParser().parseText(myXmlFile.getText())
def foo = new Foo(
myFloat: xml.attribute("my_float")?.toFloat()
).save()
// ...
}
此时在调试器中我可以看到myFloat
的值为6378137.0
。问题是在事务提交后,存储在数据库中的值是6378140
。
为什么myFloat
没有与我分配给它的值一起存储?
答案 0 :(得分:1)
你必须在GORM /休眠中设置精度和比例..
查看以下链接...