Grails 2.5.3没有正确绑定浮点字段

时间:2016-05-26 02:54:52

标签: grails gorm

我有一个带有float字段的域类:

class DvQuantity {

   float magnitude
   String units
}

当我有这个:

new DvQuantity( magnitude: '11.0', units: 'm' ).save()

在数据库中,我看到:幅度= 110.0而不是11.0

这是Grails的错误吗?有没有解决方法?

1 个答案:

答案 0 :(得分:0)

这不是一个错误。如评论中所述,数字的解析取决于您的语言环境。见下面的例子:

import java.text.NumberFormat
String a = '11,0'
assert NumberFormat.getInstance(Locale.US).parse(a).floatValue() == 110
assert NumberFormat.getInstance(Locale.FRANCE).parse(a).floatValue() == 11.0

有许多不同的方法可以更改默认数字格式 - 例如PropertyEditorRegistrarValueConverter。您还可以使用验证器在视图上强制执行格式。

此处Grails databinding with decimal delimiter回答了示例代码,如何为Grails< 2.3和> = 2.4

执行此操作