我有一个 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
没有与我分配给它的值一起存储?
最佳答案
您必须在 GORM/hibernate 中设置精度和小数位数..
查看下面的链接...
关于mysql - 浮点值未正确保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18624411/