0

我有一个 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()

    // ...
}

此时在调试器中我可以看到 is 的myFloat6378137.0。问题是事务提交后存储在数据库中的值是6378140.

为什么不myFloat与我分配给它的值一起存储?

4

1 回答 1

1

您必须在 GORM/hibernate 中设置精度和比例。

查看下面的链接...

http://appfuse.547863.n4.nabble.com/appfuse-user-hibernate-and-decimal-column-precision-td548279.html

于 2013-09-04T23:58:30.603 回答